我开始在Mac上使用VS Code进行Python开发,但无法让pylint
找到一个模块。
这是我的项目文件夹结构:
project_root/
.env
.vscode/
settings.json
lib/
# lib containing necessary modules
sample/
client/
EDAMTest.py
# many more files
我使用安装了pylint
的virtualenv。虚拟环境在终端中被激活。我从code
文件夹中的project_root
通过终端中的code .
启动了
VS Code说它正在使用正确的解释器。我可以在左下角看到Python 3.6.1 (virtualenv)
如果要在终端中测试project_root/sample/client/EDAMTest.py
代码,可以将export PYTHONPATH=../../lib; python EDAMTest.py
放在文件夹project_root/sample/client/
中,通过它进行操作。
现在,如果我使用VS Code,请打开文件EDAMTest.py
,pylint
告诉我它无法从lib
导入模块。
现在我的问题:
如何在VS Code中将lib
添加到PYTHONPATH
?
我发现了几种可能的方法:
.env
文件(请参见下面的[1])。PYTHONPATH
文件中指定.vscode/launch.json
(请参见[2])我发现所有可能的解决方案似乎都不起作用。
我想念什么?
[1] Environment variable definitions file
这告诉我如何定义全局(env)变量。所以我指定了这个:
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"
}
答案 0 :(得分:0)
似乎我必须在.env
文件中使用冒号代替分号,例如:PYTHONPATH="~/.virtualenvs/evernote/bin/python:lib"
。看来可以解决问题。