我开始使用VS代码在Mac上进行Python开发,无法使pylint
找到一个模块。
这是我的项目文件夹结构:
project_root/
.env
.vscode/
settings.json
lib/
# lib containing necessary modules
sample/
client/
EDAMTest.py
# many more files
我使用了一个虚拟主机,我在其中安装了pylint
。虚拟env在终端中被激活。我通过终端中的code
从project_root
文件夹中通过code .
启动了code .
。
VS代码表示它使用的是正确的解释器。我在左下角可以看到上面写着Python 3.6.1 (virtualenv)
如果我想测试终端中的project_root/sample/client/EDAMTest.py
代码,我可以在文件夹project_root/sample/client/
中通过export PYTHONPATH=../../lib; python EDAMTest.py
进行测试。
现在如果我在VS代码中,打开文件EDAMTest.py
,pylint
告诉我它不能从lib
导入模块。
现在我的问题是:
如何在VS代码中将lib
添加到PYTHONPATH
中?
我找到了几种可能的方法:
.env
文件(参见下面的1)。PYTHONPATH
文件中指定.vscode/launch.json
(参见2)我发现的所有可能的解决方案似乎都不起作用。
我遗漏了什么?
这告诉我如何定义全局(env) vars。所以我具体说明如下:
PYTHONPATH="~/.virtualenvs/evernote/bin/python;lib"
但这行不通。不过,lib
的路径仍未被pylint
找到。
2所以我创建了一个launch.json
文件,如下所示:
{
"name": "Python",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config.python.pythonPath}",
"program": "${file}",
"cwd": "${workspaceRoot}",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
],
"env": {
"PYTHONPATH": "~/.virtualenvs/evernote/bin/python:lib"
}
}
编辑
下面是一个试图解决这个问题的链接:
该链接试图解决几个可能的问题,其中一个问题是:
..。无法进口
建议的解决办法是:
确保
pythonPath
设置指向安装Pylint的有效Python安装。
=>是的,我做了。
或者,将
python.linting.pylintPath
设置为所使用的Python解释器的适当版本的Pylint。
=>我做了,但还是没有成功:
我的.vscode/settings.json
{
"python.pythonPath": "~/.virtualenvs/evernote/bin/python",
"python.linting.pylintPath": "~/.virtualenvs/evernote/bin/pylint"
}
发布于 2018-08-29 15:21:44
我似乎不得不在.env
文件中使用冒号而不是分号,比如:PYTHONPATH="~/.virtualenvs/evernote/bin/python:lib"
。这似乎解决了问题。
https://stackoverflow.com/questions/52080291
复制相似问题