VS代码-pyinter找不到模块
VS Code - pylinter cannot find module
我开始使用 VS Code 在 Mac 上进行 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])
我找到的 None 个可能的解决方案似乎可行。
我错过了什么?
[1] Environment variable definitions file
这告诉我如何定义全局 (env) 变量。所以我指定了这个:
PYTHONPATH="~/.virtualenvs/evernote/bin/python;lib"
但是不行。 pylint
仍然找不到 lib
s 路径
[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"
}
}
---
编辑
这里有一个 link 试图解决这个问题:
link 试图解决几个可能的问题,其中一个是:
... unable to import
建议的解决方案是:
Ensure that the pythonPath
setting points to a valid Python installation where Pylint is installed.
=> 是的,我做到了。
Alternately, set the python.linting.pylintPath
to an appropriate version of Pylint for the Python interpreter being used.
=> 我做了,还是没有成功:
我的.vscode/settings.json
:
{
"python.pythonPath": "~/.virtualenvs/evernote/bin/python",
"python.linting.pylintPath": "~/.virtualenvs/evernote/bin/pylint"
}
看来我不得不在 .env
文件中使用冒号而不是分号,如下所示:PYTHONPATH="~/.virtualenvs/evernote/bin/python:lib"
。这似乎解决了问题。
我开始使用 VS Code 在 Mac 上进行 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])
None 个可能的解决方案似乎可行。
我错过了什么?
[1] Environment variable definitions file
这告诉我如何定义全局 (env) 变量。所以我指定了这个:
PYTHONPATH="~/.virtualenvs/evernote/bin/python;lib"
但是不行。 pylint
lib
s 路径
[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"
}
}
---
编辑
这里有一个 link 试图解决这个问题:
link 试图解决几个可能的问题,其中一个是:
... unable to import
建议的解决方案是:
Ensure that the
pythonPath
setting points to a valid Python installation where Pylint is installed.
=> 是的,我做到了。
Alternately, set the
python.linting.pylintPath
to an appropriate version of Pylint for the Python interpreter being used.
=> 我做了,还是没有成功:
我的.vscode/settings.json
:
{
"python.pythonPath": "~/.virtualenvs/evernote/bin/python",
"python.linting.pylintPath": "~/.virtualenvs/evernote/bin/pylint"
}
看来我不得不在 .env
文件中使用冒号而不是分号,如下所示:PYTHONPATH="~/.virtualenvs/evernote/bin/python:lib"
。这似乎解决了问题。