Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

pyenvでもanacondaでもjedi-vimを動かす

$
0
0

pyenvもpipenvもanacondaも全てに対応。鉄の意志で。

やること

今のシェルで呼び出せるpythonを補完する設定です。
~/.vim/ftplugin/python.vim
をこうしました。

pythonx << EOF
import subprocess
import sys
path = subprocess.run(['python','-c','import site; print(site.getsitepackages()[0])'],
                      stdout=subprocess.PIPE).stdout
path = path.strip()
path = path.decode('utf-8')
path = str(path)if not path in sys.path:
    sys.path.append(path)
EOF

解説

最近のpythonではシェルを使うにはsubprocessモジュールのrun()を使うのが良いらしいです。

run()は第一変数にコマンドラインをスペースで分けたリストを放り込めば良いようです。
で、結果を取得したい場合はstdout=subprocess.PIPEというのをつけねばならぬらしい。
返り値はsubprocessモジュールで定義されたオブジェクトで、
その中のstdoutという変数に結果が格納されるようです。
文字列には改行文字が含まれていたりするのでstripで取り除いてあげます。
文字列はバイトの文字列なので、utf-8にデコードしてあげないといけません。

クソ面倒くさくね(´・ω・`)?

でもまぁ、これでどんなpythonの環境でもjediの力が及ぶわけです。
フォースとともにあらんことを。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>