在 visual studio 代码中添加模块的 python 路径

add a python path to a module in visual studio code

我很难在另一个目录甚至同一项目的文件夹中指定包含 modules/packages 的 python 路径。当我尝试导入时出现错误:

ModuleNotFoundError: 没有名为 'perception'

的模块

在 Spyder 中,这只需使用 UI 到 select 一个额外的 python 路径,python 将查找,但我无法这样做VSC.

请注意,我已尝试按照其他答案编辑 settings.json 文件和 .env 文件,但问题仍然存在。

我唯一的解决办法是在每个脚本中使用 sys.path.append(),这不是我想要的。

例如我的 settings.json 文件是:

{

"terminal.integrated.env.osx": {
    "PYTHONPATH": "pathtoprojectfolder"
},
"python.envFile": "${workspaceFolder}/.env",
"jupyter.interactiveWindowMode": "perFile",
"python.terminal.executeInFileDir": true,
"terminal.integrated.inheritEnv": true,
"jupyter.themeMatplotlibPlots": true,
"window.zoomLevel": 2,
"python.condaPath": "path_to_conda_python",
"python.defaultInterpreterPath": "path_to_conda_python",

}

在您的 launch.json 配置文件条目中,指定一个名为“env”的新条目,并自行设置 PYTHONPATH。

"configurations": [
    {
        "name": "Python",
        "type": "python",
        "stopOnEntry": false,
        "request": "launch",
        "pythonPath": "${config.python.pythonPath}",
        "program": "${file}",
        "cwd": "${workspaceRoot}",
        "debugOptions": [
            "WaitOnAbnormalExit",
            "WaitOnNormalExit",
            "RedirectOutput"
        ],
        "env": {
            "PYTHONPATH": "/path/a:path/b"
        }
    }
]

仅适用于 MacOS 的说明。

添加 .env 文件并导航设置 json 文件并不像在 Spyder 中添加额外的 python 路径那样直观和简单。但是,这在 VSC 上对我有用:

  1. 在项目文件夹中创建一个 .env 文件。
  2. 将要添加到 PYTHONPATH 的完整路径添加如下: PYTHONPATH=/Users/../projectFolder:/Users/.../AnotherProjectFolder

** 关键是你必须在路径之间使用适当的分隔符,在 Mac 上你必须使用':',否则路径将不会被添加。

  1. 转到代码->首选项->设置并搜索“terminal.integrated.osx”。单击编辑“settings.json”

  2. 添加到json设置

    "python.envFile": "${workspaceFolder}/.env",

例如,您可能 settings.json 显示以下内容:

{
    "python.envFile": "${workspaceFolder}/.env",
    "jupyter.interactiveWindowMode": "perFile", 
    "python.terminal.executeInFileDir": true,
}

添加路径是一个相当复杂的过程,但我喜欢 运行 VSC 中的 Jupyter notebooks 的功能,而 Spyder 在独立安装程序中还没有。

此页面包含所需信息:https://code.visualstudio.com/docs/python/environments#_environment-variable-definitions-file