在带有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。
知道我缺少什么吗?感谢您的帮助。
答案 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)