在虚拟环境中安装 `coc-python` 和 `jedi` 自动完成模块
Make `coc-python` and `jedi` autocomplete modules installed in a virtual environment
使用通常的 coc.nvim
+ coc-python
+ jedi
设置 NeoVim 应该使用系统 Python 模块来 运行 它自己的插件,但 Jedi 应该能够自动完成安装在活动虚拟环境中的 Python 个模块。我该如何设置?
我已经全局安装了 NeoVim 和 pip install
-ed Pylint 和 Jedi。我在 NeoVim 中安装了 coc.nvim
和 coc-python
没有问题。我在 ~/.vimrc
:
中有系统 Python 3 路径
let g:python3_host_prog = '/bin/python'
以及 ~/coc-settings.json
中的以下内容:
"python.pythonPath": "/bin/python",
"python.jediEnabled": true,
"python.jediPath": "/usr/lib/python3.9/site-packages",
"python.linting.pylintEnabled": true,
"python.linting.pylintPath": "/bin/pylint",
"python.linting.flake8Enabled": false
当我创建一个虚拟环境时,激活它,安装 pygame
然后 运行 NeoVim 在里面:
➜ python3 -m venv myenv && myenv/bin/activate
➜ pip install pygame
➜ nvim
linter 和 Python 3 提供程序都可以正常工作。然而,Jedi 完成了本地代码的成员但没有完成 pygame
的成员,除非我也在虚拟环境之外安装 pygame
,即:
➜ deactivate
➜ pip install pygame
➜ myenv/bin/activate
➜ nvim
但是每个 Python 模块都必须安装两次,这与使用虚拟环境的目的不符。
找到了。在 coc-settings.json
:
"python.pythonPath": "python",
NeoVim 必须始终使用 /bin/python
,但传递给 Jedi 的路径必须在虚拟环境中指向 Python 3,当它处于活动状态时指向 /bin/python
吨。将 CoC 的 Python 路径设置为 python
让 env
处理它:
➜ myenv/bin/activate
➜ which python
/home/test/foobar/myenv/bin/python
➜ deactivate
➜ which python
/bin/python
使用通常的 coc.nvim
+ coc-python
+ jedi
设置 NeoVim 应该使用系统 Python 模块来 运行 它自己的插件,但 Jedi 应该能够自动完成安装在活动虚拟环境中的 Python 个模块。我该如何设置?
我已经全局安装了 NeoVim 和 pip install
-ed Pylint 和 Jedi。我在 NeoVim 中安装了 coc.nvim
和 coc-python
没有问题。我在 ~/.vimrc
:
let g:python3_host_prog = '/bin/python'
以及 ~/coc-settings.json
中的以下内容:
"python.pythonPath": "/bin/python",
"python.jediEnabled": true,
"python.jediPath": "/usr/lib/python3.9/site-packages",
"python.linting.pylintEnabled": true,
"python.linting.pylintPath": "/bin/pylint",
"python.linting.flake8Enabled": false
当我创建一个虚拟环境时,激活它,安装 pygame
然后 运行 NeoVim 在里面:
➜ python3 -m venv myenv && myenv/bin/activate
➜ pip install pygame
➜ nvim
linter 和 Python 3 提供程序都可以正常工作。然而,Jedi 完成了本地代码的成员但没有完成 pygame
的成员,除非我也在虚拟环境之外安装 pygame
,即:
➜ deactivate
➜ pip install pygame
➜ myenv/bin/activate
➜ nvim
但是每个 Python 模块都必须安装两次,这与使用虚拟环境的目的不符。
找到了。在 coc-settings.json
:
"python.pythonPath": "python",
NeoVim 必须始终使用 /bin/python
,但传递给 Jedi 的路径必须在虚拟环境中指向 Python 3,当它处于活动状态时指向 /bin/python
吨。将 CoC 的 Python 路径设置为 python
让 env
处理它:
➜ myenv/bin/activate
➜ which python
/home/test/foobar/myenv/bin/python
➜ deactivate
➜ which python
/bin/python