python - VS代码-pyinter找不到模块

标签 python visual-studio-code

我开始在 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. .vscode/launch.json文件中指定PYTHONPATH(见[2])

我发现的所有可能的解决方案似乎都行不通。

我错过了什么?


[1] Environment variable definitions file

这告诉我如何定义全局(env)变量。所以我指定了这个:

PYTHONPATH="~/.virtualenvs/evernote/bin/python;lib"

但它不会起作用。 pylint

仍然找不到 lib 的路径

[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

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

... 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"。这似乎解决了问题。

关于python - VS代码-pyinter找不到模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52080291/

相关文章:

python - 尝试使用 Tensorflow 实现对象检测时出现错误

python - Twitter.com 请求错误

python - tuple'对象没有属性 'get'

python - 单击时如何获取按钮ID?

visual-studio-code - VSCode - 创建插入字符串的快捷方式

python 搜索子目录

go - 调试Go程序时VSCode错误的路径

angular - "Expected operands to be a string or number type" Angular

node.js - 在带有 Ubuntu-Bash 和 NodeJS 的 Windows 上使用 Visual Studio Code

c++ - 如何在VSCode上调试C++代码?苹果系统