環境
- OSX 10.10.5
- MacVim 7.4
- anaconda-2.3.0 (python2.7.10)
- python2.7.10 (システムのpython)
pyenvを使用していてvirtualenvは未使用
PYENV_ROOTはホームディレクトリ直下
やりたいこと
vimのプラグインであるjedi-vimはデフォルトだとpyenv等で使用するpythonを切り替えていてもシステムのpythonを参照してしまう。
このため、anacondaやpyenvで設定したpythonで入れたライブラリの補完をしてくれない。
これを補完してくれるようにしたい。
解決策
jedi-vimが補完してくれるのはpythonのsys.pathの中にあるライブラリのため、ここにanacondaのsite-packagesを追加してあげれば補完されるようになります。
解決策としてはftplaguinでpythonファイルを読み込む時に直接sys.pathを書き換える方法とpthファイルをおいていて読み込んでもらう方法の2つがあります。
ftplaguin
.vim/ftplaguinフォルダ内にpython.vimを置く
python << EOF
import os
import sys
path = os.path.expanduser("~/.pyenv/versions/anaconda-2.3.0/lib/python2.7/site-packages")
if not path in sys.path:
sys.path.append(path)
EOF
pthファイルを使用
/Library/Python/2.7/site-packagesの下にanaconda.pth(ファイル名は .pth になっていれば何でも平気)として参照先を置く
/Library/Python/site-packagesの中を編集するにはsudo権限が必要
~/.pyenv/versions/anaconda-2.3.0/lib/python2.7/site-packages
確認
vimを起動して以下を実行した時に追加したパスが入っていれば成功してます。
:py print(sys.path)