【发布时间】:2018-08-29 14:43:54
【问题描述】:
我开始在 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 代码,我可以在文件夹project_root/sample/client/ 中通过export PYTHONPATH=../../lib; python EDAMTest.py 进行测试。
现在如果我在 VS Code 中,打开文件 EDAMTest.py,pylint 告诉我它无法从 lib 导入模块。
现在我的问题:
如何在 VS Code 中将lib 添加到PYTHONPATH?
我找到了几种可能的方法:
- 创建一个
.env文件(参见下面的[1])。 - 在
.vscode/launch.json文件中指定PYTHONPATH(参见[2])
我找到的所有可能的解决方案似乎都不起作用。
我错过了什么?
[1]Environment variable definitions file
这告诉我如何定义全局 (env) 变量。所以我指定了这个:
PYTHONPATH="~/.virtualenvs/evernote/bin/python;lib"
但这行不通。仍然libs 路径没有被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"
}
【问题讨论】:
标签: python visual-studio-code vscode-settings