【Neovim】Python3が使えないエラーが発生した場合の解決策

neovimのロゴ Vim/Neovim

事象

GitHub - vim-scripts/vim-javacomplete2: Refreshed javacomplete plugin for vim.
Refreshed javacomplete plugin for vim. Contribute to vim-scripts/vim-javacomplete2 development by creating an account on...

こちらのJavaの補完プラグインをインストールしようとしたが、以下のようなエラーが発生した。

Javacomplete needs Python3 support to run!
FileType Autocommands for "java" の処理中にエラーが検出されました:
E117: 未知の関数です: javacomplete#Start

原因を確かめるために:checkhealthコマンドを使ったところ、以下のようにPython3が使えない状態であった。

Python 3 provider (optional)
- pyenv: Path: /usr/local/Cellar/pyenv/2.3.17/libexec/pyenv
- pyenv: $PYENV_ROOT is not set. Infer from `pyenv root`.
- pyenv: Root: /Users/username/.pyenv
- WARNING No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
- WARNING Could not load Python 3:
  /Users/username/.pyenv/shims/python3 does not have the "neovim" module.
  /Users/username/.pyenv/shims/python3.10 does not have the "neovim" module.
  /Users/username/.pyenv/shims/python3.9 does not exist: pyenv: python3.9: command not found
--
  The `python3.9' command exists in these Python versions:
  3.9.6
--
  Note: See 'pyenv help global' for tips on allowing both
  python2 and python3 to be found.
--
  /Users/username/.pyenv/shims/python3.8 does not exist: pyenv: python3.8: command not found
--
  The `python3.8' command exists in these Python versions:
  3.8.5
--
  Note: See 'pyenv help global' for tips on allowing both
  python2 and python3 to be found.
--
  /Users/username/.pyenv/shims/python3.7 does not have the "neovim" module.
  /Users/username/.pyenv/shims/python does not have the "neovim" module.
  - ADVICE:
    - See :help provider-python for more information.
    - You may disable this provider (and warning) by adding let g:loaded_python3_provider = 0 to your init.vim
- Executable: Not found

結論

  1. Python3系が利用できて、パスが通っているか確認する
  2. python3 -m pip install --user --upgrade pynvimを実行し、pynvimをインストールする

やったこと

①:checkhealthの結果を読む

:checkhealthコマンドを見ると、以下のようにアドバイスされていた。

  - ADVICE:
    - See :help provider-python for more information.
    - You may disable this provider (and warning) by adding let g:loaded_python3_provider = 0 to your init.vim

②:help provider-pythonを実行する

Provider - Neovim docs
Neovim user documentation
For Python 3 plugins:
1. Make sure Python 3.4+ is available in your $PATH.
2. Install the module (try "python" if "python3" is missing):
   python3 -m pip install --user --upgrade pynvim

見たところ、どうやら「pynvim」というNeovim用のパッケージをインストールしておく必要があるらしい。

Pythonのパスが通っていることを確認し、記載されているコマンドを実行し、pynvimをインストールする。

$ python3 -m pip install --user --upgrade pynvim

③もう一度:checkhealthで確認する

もう一度Neovimの環境を確認すると、Python3の環境が出来上がっていることが確認できる。

Python 3 provider (optional)
- pyenv: Path: /usr/local/Cellar/pyenv/2.3.17/libexec/pyenv
- pyenv: $PYENV_ROOT is not set. Infer from `pyenv root`.
- pyenv: Root: /Users/username/.pyenv
- g:python3_host_prog is not set.  Searching for python3 in the environment.
- Executable: /Users/username/.pyenv/versions/3.10.0/bin/python3
- Python version: 3.10.0
- pynvim version: 0.4.3
- OK Latest pynvim is installed.

④(任意)起動が早くなるための設定をする

ヘルプにも記載してあるが、こちらの設定をinit.vimに追記すると起動が早くなるらしい。

let g:python3_host_prog = '/path/to/python3'

タイトルとURLをコピーしました