我只是浪费了 2 个小时试图让 pylint 识别从本地路径导入的模块,但终于让它工作了。
我将根添加到“python.autoComplete.extraPaths”,但这只会影响自动完成,而不影响 pylint!
为此,我必须在 virtualenv 中安装项目。
首先,确保您指向 virtualenv 中的解释器。这是我的 VSCODE 工作区设置的样子:
{
"python.linting.pylintEnabled": true,
"python.pythonPath": "/home/andrew/virtualenvs/eks/bin/python",
"python.linting.pylintPath": "/home/andrew/virtualenvs/eks/bin/pylint",
"python.autoComplete.extraPaths": ["/other/repos/eks"],
"python.linting.pylintArgs": [
"--disable=C0111", // missing docstring
"--load-plugins=pylint_django"
],
}
其次,在 virtualenv 处于活动状态的情况下,将当前目录安装为符号链接,如下所示:
pip install -e .
要使项目可安装,您需要一个 setup.py 文件,该文件只需如下所示:
from setuptools import setup
setup()
当然,您可以使用带有 setup.cfg 文件的设置机制来控制依赖关系,但如果您遇到此问题,那么您很可能没有这样做在你的项目中,所以以上是让它工作的最低要求。
当然,这一切都说得通。 pylint 是如何指向你的 virtualenv 中的 python 解释器应该知道其他地方的 rot 目录的?