debugging 使用venv-VS代码调试不会看到所有pip安装的软件包

wixjitnu  于 2023-01-09  发布在  其他
关注(0)|答案(4)|浏览(148)

使用Python 3.7.2 32bit在Windows上运行VS代码,在venv环境下。我搜索了又搜索,要么是我做错了什么,要么是VS代码没有做我想做的事情。
"Python: Current File (Integrated Terminal)"下运行的VS代码调试器没有在我的(env)中找到使用pip install安装的包。事实上,看起来这些包根本没有安装在虚拟环境中。
每当我试着调试一个py文件时,调试器告诉我它找不到我用pip安装的包。我把包安装在venv (env)里面,或者我是这么想的。然而,在(env)激活的情况下运行pip list,显示的列表与它被停用时相同。
我注意到,在(env)处于活动状态时运行pip install并不总是会导致包安装在我的环境中。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代码终端python script.py中运行脚本每次都能正常工作。
从以下位置手动复制包:
appdata\local\programs\python\python37-32\lib\site-packages

env\lib\site-packages
允许调试器无错误地工作。这很好,这是一个变通方案,但问题似乎更多地是我的venv实际上不像venv那样工作。
我在我的linux机器上没有看到venv有任何问题,但是它们大多是无头的,所以我没有运行VS代码。
你知道我错过了什么吗?谢谢你的帮助。

mjqavswn

mjqavswn1#

您是否尝试过添加:

"justmycode": false

在调试配置中?它默认为true,并且只允许您调试自己的文件。以下是我的配置:

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

voj3qocg2#

这很奇怪,但对我很有效!
尝试在vscode中从终端激活你的虚拟环境,然后不要从UI解释器选择器中选择venv环境,而只使用你的普通python解释器,你不应该在vs代码编辑器的左下角看到venv名称。
然后从Run〉Start debugging调试代码,它现在找到了包!!!

bvhaajcl

bvhaajcl3#

可能是语言服务器绝地造成的。
Cmd+Shift+P并输入“设置”,然后使用Enter键选择“打开设置(JSON)”

打开settings.json并添加

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

禁用它。
我知道这看起来违反直觉,但是在我这么做之后,它找到了我选择的python解释器的包,并且在我卸载它们时没有再找到它们。
给予看,如果不起作用,很容易撤销。

knsnq2tg

knsnq2tg4#

我当前的临时解决方案...在python文件顶部添加到venv python的路径

!~/.venv/二进制文件/python

我在VS代码中也有类似的问题,可以从vevn〉python /path/ www.example.com运行它file.py但如果我从VS代码GUI运行它(即使在命令托盘中选择enterpreter venv并在底部的状态栏中确认后),它仍然说未找到模块:(

相关问题