似乎这个问题已经有一段时间了,但是在仔细检查stackoverflow,reddit和vscode文档之后,我很想找到答案。我以为我会在这里再拍一张。在PyCharm中,您可以转到“项目结构”并添加源根文件夹以解决相对的导入和pylint问题,如下所述: https://www.jetbrains.com/help/pycharm/configuring-project-structure.html。
是否可以在VSCode中实现此功能?
答案 0 :(得分:2)
我只是花了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目录?
答案 1 :(得分:0)
听起来好像您在"python.autoComplete.extraPaths"
setting之后,您可以通过它列出一系列路径来查找要自动完成的软件包。至于Pylint,setting up your PYTHONPATH
via a .env
file可能就是您所追求的。
答案 2 :(得分:0)
这是我在这个问题上搜索了一段时间后发现的。
extraPath
,并将相对路径添加到“Python > Analysis: Extra Paths”。假设最新版本的 vscode 和 pylance。extraPath
--- 只是这次您将放入当前文件夹的相对路径(在磁盘上),例如 {{ 1}}。并且设置在“文件夹设置”而不是“用户”或“工作区”设置中。也必须对每个根文件夹执行此操作。希望以上内容有所帮助。