使用venv-VS Code调试未查看所有pip安装的软件包

时间:2019-02-11 15:40:58

标签: python-3.x debugging visual-studio-code pip

在带有venv环境的Python 3.7.2 32位的Windows上运行VS Code。我已经搜索了,或者是我做错了什么,或者VS Code无法完成我想做的事情。

"Python: Current File (Integrated Terminal)"下运行的VS Code调试器在我的pip install中找不到使用(env)安装的软件包。实际上,似乎根本没有将软件包安装在虚拟环境中。

每当我尝试调试一个py文件时,调试器都会告诉我找不到使用pip安装的软件包。我将软件包安装在venv (env)内,或者我想。但是,在pip list处于活动状态下运行(env)会显示与停用时相同的列表。

我注意到pip install处于活动状态时运行(env)并不总是导致软件包安装在我的环境中。 pip list将显示它,但pip show将在Python的appdata\local\programs\python\python37-32\lib\site-packages中显示它。

我正在使用vs代码终端(python shell或git bash shell)中的python -m venv env创建环境。它显示(env)为活动状态,因此我不确定自己在做什么。

我没有更改launch.json配置: { "name": "Python: Current File (Integrated Terminal)", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal" }

VS代码显示我正在使用正确的venv解释器:

Python 3.7.2 32-bit ('env': venv)

每次都可以在VS Code终端python script.py中直接运行脚本。

从以下位置手动复制软件包:

appdata\local\programs\python\python37-32\lib\site-packages

env\lib\site-packages

允许调试器正常运行。很好,而且是一种解决方法,但问题似乎更多在于我的venv的行为实际上不像venv

我在linux机器上没有看到venv的任何问题,但是它们几乎没有头,所以我没有运行VS Code。

知道我缺少什么吗?感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

您是否尝试添加:

"justmycode": false

在调试配置中? 它默认为true,仅允许您调试自己的文件。 这是我的配置:

    {
        "name": "Python: Current File (Integrated Terminal)",
        "type": "python",
        "request": "launch",
        "program": "${file}",
        "console": "integratedTerminal",
        "justMyCode": false
    }

答案 1 :(得分:0)

这很奇怪,但是对我有用!

尝试从vscode的终端激活您的虚拟环境。然后不要从UI解释器选择器中选择venv环境,而只需使用普通的python解释器即可。 vs代码编辑器的左下方不会显示venv名称。

然后从“运行”>“调试”中调试代码,现在它会找到软件包!!

答案 2 :(得分:0)

可能是语言服务器 Jedi 造成的。

Cmd+Shift+P 并输入“settings”并使用 Enter

enter image description here

打开settings.json并添加

    "python.jediEnabled": true,
    "python.languageServer": "Jedi"

禁用它。

我知道这似乎违反直觉,但是在我这样做之后,它找到了我选择的 python 解释器的包,并且在我卸载它们时没有再次找到它们。

试一试,如果它不起作用,很容易撤消。