Windows(32bit) なんだけど Vim8 で見ている Python のバージョンって、V3.5 か、で悶絶
仕事中焦って、小一時間程ハマって、原因知った時そんなことかよと苛っとした、とっても恥ずかしい話。
そして結果、一周して戻ってくることになります。
メモ。
今回は珍しく Windows 上での話題。
環境は、cmd で ver
で以下。;
Microsoft Windows [Version 6.1.7601]
Python が無いと言われた
[denite] denite.nvim does not work with this version. [denite] It requires Vim 8.0+ with Python3 support("+python3").
入っているのに。
つか、直前まで Python の作業していたのに。
echo has('python3')
も 0
?
原因: Windows の Vim が対象とする Python のデフォは 3.5。3.6 ではない。
作業は 3.6 を使っていたので、「3.5、何でいるの? 2 つなんて要らないんだけど」でアンインストールした 3.5 を再インストールしたら、元に戻った。
ちゃんとドキュメントにありました orz ;
MS-Windows
...
DLLの名前はVimをコンパイルした時のPythonのバージョンに一致しなければなりません。 ... Python 3の場合はpython35.dll (Python3.5)です。これを確かめるには、"gvim.exe" を開き、"python\d*.dll\c" を検索してください。via. :h python-dynamic
直前まで普通通りに作業できていたので、焦りました。
悪いのは、知らないで消していた自分。
そしたら jedi-vim
でも怒られた
Please install Jedi if you want to use jedi-vim. The error was: No module named 'jedi' Please install Jedi if you want to use jedi-vim. The error was: No module named 'jedi'
:h jedi
すると、正しくヘルプが表示されるのだけど。
3.6 のを見ているようす。3.5 としての jedi 入れる
ターミナルで確認。
$ pip --version pip 9.0.1 from c:\users\home\appdata\local\programs\python\python36-32\lib\site-packages (python 3.6)
あんま構ってる時間も、気持ちもないので (笑) 3.6 側のディレクトリをリネーム。*2
$ pip --version pip 9.0.1 from c:\users\home\appdata\local\programs\python\python35-32\lib\site-packages (python 3.5)
jedi 居る?
$ pip list pip (9.0.1) setuptools (28.8.0)
居ない。pip install。
pip --proxy=proxy.abcde.xyz.jp:00000 install jedi
上手く動作するようになったみたい。
先ほどの 3.6 のディレクトリ名は、本来あるべき名称へと戻す。
ところが
pythonthreedll
オプションに python36.dll
のパスを定義してやれば 3.6 いける。
先ほど引用ヘルプに、こんな記載が有って気になっていました。;
また 'pythondll' か 'pythonthreedll' オプションを Python の DLL を指定するのに使うこともできます。
加えて、普段使いの macOs では 3.6.* で問題なく使っているのに..、と言うのが引っ掛かっていて。
pythonthreedll
オプションに直接、3.6 の dll をせっていすればイケるみたい
です。
set pythonthreedll=C:/Users/home/AppData/Local/Programs/Python/Python36-32/python36.dll
自分が使いやすい道具で仕事ができる、そんな環境で働けるとこ行きたいです。
おしまい。