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

brewで入れたVim8のDependenciesがpython@3.8になってdeopleteが動かなくなったのに対処したメモ

$
0
0

brewで入れてるVim8をアップデートしたらdeopleteが動作しなくなったのに対処したメモ。

エラー文にinitializeとあるので、なにやら初期化時にエラーが起きている。

[deoplete] [vim-hug-neovim-rpc] requires one of `:pythonx import [pynvim|neovim]`
 command to workfunction deoplete#enable[9]..deoplete#initialize[1]..

deopleteのrequirementでも変わったかね?と確認すると msgpackをpipでいれろとある。
入れた記憶がなかったのでインストール。まあ入っていたのだけど。

$ pip3 install -U msgpack
$ pip3 install -U pynvim

が、まだエラーが出る。

Vim側で
:echo if("python3")で1になるのでVim側のifは有効。
:pyx print(sys.version)すると

3.8.3 (default, May 27 2020, 20:54:22)
[Clang 11.0.3 (clang-1103.0.32.59)]

3.8・・・? $ python3 -Vをすると3.7が出てくる。これは/usr/bin/にあるmacOS Catalinaのものだ。どうやらbrewのvimのpython dependencyが python@3.8になったようだ。

brewで入ったpython 3.8用の/usr/local/bin/pip3.8があるので、そちらでmsgpackとpynvimを入れる。

$ pip3.8 install -U msgpack
$ pip3.8 install -U pynvim

まだエラーが出る。

[deoplete] [yarp] [deoplete] job is dead. failed establishing channel for ['python3', '-u', ...

これは python3コマンドを使っているっぽい。でもそっちは3.7なんだよなってことで3.8の方を使われるようにしたい。いっそbrewのpython3パッケージを消そうかと思ったが依存で使われていて消せない。
python3コマンドを3.8の方が使われるようにPATH通すかってことでbrewのlinkを通す事にする。

brewの python@3.8はkeg-onlyなので自動では/usr/local/bin/にsymlinkが作られない。のでリンクを作る。

$ brew link python@3.8 --force
Linking /usr/local/Cellar/python@3.8/3.8.3... 
Error:Could not symlink bin/pip3
Target /usr/local/bin/pip3
is a symlink belonging to python. You can unlink it:
  brew unlink python

To force the link and overwrite all conflicting files:
  brew link --overwrite python@3.8

To list all files that would be deleted:
  brew link --overwrite --dry-run python@3.8

brewのpython3で入ったpip3がいるのでエラー。pip3も3.8の方で良い(今後何か起きるかもだが)のでoverwriteつけて...

$ brew link python@3.8 --force --overwrite

成功。

/usr/binよりも/usr/local/binの方を優先するPATHにしてるので、これでpython3が3.8に向いて無事deopleteが動いた。

なおったはなおったが、そろそろnvimにした方がトラブル少ないのかもしれないなーと思った。


Viewing all articles
Browse latest Browse all 5657

Trending Articles



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