VS代码-pylinter无法找到模块

时间:2018-08-29 14:43:55

标签: python visual-studio-code vscode-settings

我开始在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.pypylint告诉我它无法从lib导入模块。

现在我的问题:

如何在VS Code中将lib添加到PYTHONPATH

我发现了几种可能的方法:

  1. 创建一个.env文件(请参见下面的[1])。
  2. 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"
    }
}

---

编辑

以下是尝试解决此问题的链接:

Troubleshooting linting

该链接试图解决几个可能的问题,一个是这样的:

  

...无法导入

建议的解决方案是:

  

确保pythonPath设置指向安装了Pylint的有效Python安装。

=>是的,我做到了。

  

或者,将python.linting.pylintPath设置为适合使用的Python解释器的Pylint版本。

=>我做到了,仍然没有成功:

我的.vscode/settings.json

{
    "python.pythonPath": "~/.virtualenvs/evernote/bin/python",
    "python.linting.pylintPath": "~/.virtualenvs/evernote/bin/pylint"
}

1 个答案:

答案 0 :(得分:0)

似乎我必须在.env文件中使用冒号代替分号,例如:PYTHONPATH="~/.virtualenvs/evernote/bin/python:lib"。看来可以解决问题。