我正在尝试使用Visual Studio Code,到目前为止,它似乎很棒(轻便,快速等)。
我正在尝试运行一个使用虚拟环境的Python应用程序,但也使用不在我的虚拟环境的site-package中的库。
我知道在settings.json
中,我可以指定python.pythonPath
设置,我已经完成并指向虚拟环境。
我也知道我可以添加python.autoComplete.extraPaths
的其他路径,到目前为止我添加了外部库。问题是,当我调试时,它失败了,因为它没有找到python.autoComplete.extraPaths
中指定的库。
是否还有其他必须使用的设置?
由于
答案 0 :(得分:14)
这对我有用: -
在您的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"
}
}
]
答案 1 :(得分:2)
VS Code中的Python扩展具有python.envFile
的设置,该设置指定包含环境变量定义的文件的路径。默认情况下,它设置为:
"python.envFile": "${workspaceFolder}/.env"
因此,要将您的外部库添加到路径中,请在工作空间文件夹中创建一个名为 .env 的文件,如果使用Windows,则将以下行添加到其中:
PYTHONPATH="C:\path\to\a;C:\path\to\b"
在此处指定路径的优势在于,自动完成以及调试都可以使用此设置本身进行。您可能需要关闭然后重新打开VS Code才能使设置生效。
答案 2 :(得分:1)
我有同样的问题, malbs 回答对我来说不起作用,直到我将分号更改为冒号you can find it from ZhijiaCHEN's comments
"env": { "PYTHONPATH": "/path/to/a:/path/to/b" }
或者,我有一种黑客的方法来实现同样的目标:
# at the top of project app script:
import sys
sys.path.append('/path/to/a')
sys.path.append('/path/to/b')
答案 3 :(得分:0)
您可以将.pth文件添加到virtualenv的site-packages目录中。
对于要包含在PYTHONPATH中的每个模块或包,此文件的每行应具有一个absotute路径。
https://docs.python.org/2.7/install/index.html#modifying-python-s-search-path
答案 4 :(得分:0)
bash escamotage(与调试器和自动完成一起使用);需要在PATH中安装代码命令(vsc shell命令:install ...)
#!/bin/bash
#
# vscode python setup
#
function fvscode {
# you just want one of this:
export PYTHONPATH=<your python installation ../bin/python3>
# you may want many of these:
export PYTHONPATH=<your lib dir here>:$PYTHONPATH
# launch vscode
code
}
alias vscode='fvscode'
通过输入&#39; vscode&#39;来启动VSC。
答案 5 :(得分:0)
根据environments doc,extension looks for environments的位置包括一些默认值以及工作空间python.venvPath
中settings
的设置值
例如:"python.venvPath": "~/.virtualenvs"
这使您可以找到上述的几个(例如:virtualenvs):
要选择特定的环境,请使用Python:选择解释器 命令面板中的命令
答案 6 :(得分:0)
基于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"
}
我还添加了一个.env
文件,如以上许多帖子/评论所述。
最后,我为PyLance添加了https://stackoverflow.com/a/64103291/11262633扩展名。
我还重新加载了工作区。
这两个更改使我可以使用调试器和“运行”菜单运行Python程序。 AutoComplete知道添加的路径,并且我的VSCode linter(默认的linter pylint
,现在为pylance)现在可以使用。