Visual Studio代码 - 如何向python路径添加多个路径?

mik*_*010 18 python visual-studio-code

我正在尝试使用Visual Studio Code,到目前为止,它似乎很棒(轻便,快速等).

我试图让我的一个Python应用程序运行使用虚拟环境,但也使用不在我的虚拟环境的site-package中的库.

我知道在settings.json中,我可以指定一个python.pythonPath设置,我已经完成并指向虚拟环境.

我也知道我可以添加"python.autoComplete.extraPaths"的附加路径,到目前为止我添加了外部库.问题是,当我调试时,它失败了,因为它找不到"python.autoComplete.extraPaths"中指定的库.

是否还有其他必须使用的设置?

谢谢

小智 21

这对我有用: -

在您的launch.json个人资料条目中,指定一个名为"env"的新条目,并自行设置PYTHONPATH.

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

  • 只需在您的 VS Code 工作区中放置一个 .env 文件,其中包含:PYTHONPATH=/path/a:/path/b 请参阅:https://code.visualstudio.com/docs/python/environments#_environment-variable-definitions-file (7认同)
  • .env 文件和 settings.json 中设置 `python.autoComplete.extraPaths` 有什么区别? (3认同)

Hon*_*.Wu 14

2022 年,配置如下文件.vscode/settings.json

{
    "python.analysis.extraPaths": ["C:/Program Files/obs-studio/data/obs-scripting/64bit"],
    "terminal.integrated.env.windows": {
        "PYTHONPATH": "C:/Program Files/obs-studio/data/obs-scripting/64bit;${env:PYTHONPATH}",
        "PATH": "C:/Program Files/obs-studio/data/obs-scripting/64bit;${env:PATH}"
    }
}
Run Code Online (Sandbox Code Playgroud)


Web*_*Dev 11

VS Code中的Python扩展程序具有一个设置,python.envFile该设置可指定包含环境变量定义的文件的路径。默认情况下,它设置为:

"python.envFile": "${workspaceFolder}/.env"
Run Code Online (Sandbox Code Playgroud)

因此,要将外部库添加到路径,在工作区文件夹中创建一个名为.env的文件,如果使用Windows,则将以下行添加到该文件中:

PYTHONPATH="C:\path\to\a;C:\path\to\b"
Run Code Online (Sandbox Code Playgroud)

在此指定路径的优点是,自动完成以及调试都可以使用此设置本身进行。您可能需要关闭然后重新打开VS Code才能使设置生效。

  • 信息:这对我来说很有效,将 VSCode 附加到正在运行的容器;如果有人发现这个有用: `"python.pythonPath": "/usr/bin/python"` & `.env` -> `PYTHONPATH="/usr/src/my-project/a;/usr/src/my -项目/b"` (3认同)
  • 这是最好的办法。与 VS Code 相比,“.env”文件通常用于更多应用程序(和语言)。`.env` 文件可以与源代码一起传输,并且仍然可以被其他引擎/IDE 识别,其中 `settings.json` 文件特定于 VS Code。 (3认同)

Hai*_*ang 7

我遇到了同样的问题,直到我将分号更改为冒号后,malbs 的回答才对我有用您可以从 ShijiaCHEN 的评论中找到它

"env": { "PYTHONPATH": "/path/to/a:/path/to/b" }
Run Code Online (Sandbox Code Playgroud)

或者,我有一个黑客方法来实现相同的目标:

# at the top of project app script:
import sys
sys.path.append('/path/to/a')
sys.path.append('/path/to/b')
Run Code Online (Sandbox Code Playgroud)


mhe*_*zog 6

基于https://github.com/microsoft/vscode-python/issues/12085,我将以下内容添加到settings工作区配置文件的部分。我正在使用Linux。对于 Windows,请使用terminal.integrated.env.windows.

"terminal.integrated.env.linux": {
    "PYTHONPATH": "addl-path-entry1:addl-path-entry2"
}
Run Code Online (Sandbox Code Playgroud)

我还添加了一个.env文件,如上面许多帖子/评论所述。

最后,我根据/sf/answers/4487230401/添加了PyLance扩展。

我还重新加载了我的工作区。

这两项更改使我能够使用调试器和“运行”菜单运行 Python 程序。AutoComplete 知道添加的路径,并且我的 VSCode linter (是默认的 linter pylint,现在是 ``pylance```)现在可以工作了。

  • 这对我的 OSX 有用,使用 `"terminal.integrated.env.osx": { "PYTHONPATH": "addl-path-entry1:addl-path-entry2" }` (2认同)

teb*_*nep 5

您可以将 .pth 文件添加到 virtualenv 的 site-packages 目录中。

对于要包含在 PYTHONPATH 中的每个模块或包,此文件的每行应该有一个绝对路径。

https://docs.python.org/2.7/install/index.html#modifying-python-s-search-path

  • 我正在使用 miniconda3,我尝试了所有其他解决方案,这是唯一对我有用的解决方案。 (2认同)