我在windows 10上的VS代码中使用venv,它一直在抛出ModuleNotFoundError
,即使我已经尝试过py -m pip install <package name>
。最奇怪的是pip freeze
或pip list
什么都不返回。
如果我导航到env/Lib/site-packages
文件夹,我可以看到包文件夹已经在那里了,所以我假设包已经安装好了。
我认为值得注意的是,上述问题只发生在我激活虚拟环境之后,并且当我不在venv
中时,pip freeze
仍然正常工作。
一些细节:(如果需要,可以提供更多)
- windows 10
- VS代码1.59.0
- python 3.9.6 64位
如有任何帮助,我们将不胜感激!
查询仍然不清楚。你能显示抛出的确切错误信息吗?即CCD_ 8之后的消息。
pip是一个软件包安装程序,在创建新的虚拟环境时默认会出现它
如果错误仍然存在,您可以尝试以下操作:
pip freeze
或pip list
没有显示任何内容的第一个原因是您的虚拟环境中没有安装任何软件包。如果它没有抛出任何其他错误消息,这意味着它工作得很好,并显示一个空列表。这些软件包可能安装在虚拟环境之外。
第二个原因是您的软件包安装程序pip以某种方式从虚拟环境中卸载。但在这种情况下,无论何时使用任何pip命令,它都会抛出类似'pip' module not found.
的错误
要解决此问题(第二个原因)
- 您可以简单地停用虚拟环境并创建一个新环境。
python -m venv new_env_name
。然后使用requirements.txt文件一次性安装所有库 - 或者您将不得不在虚拟环境中手动下载并安装pip。由于我觉得它很麻烦,所以我更喜欢前面的解决方法
pip freeze
中的pip
命令可能不是绑定到venv
的命令。与install命令类似,请尝试py -m pip freeze
,然后检查是否已安装程序包。
你是如何运行python程序的?仅仅使用python scripty.py
?尝试检查您的python正在使用哪个site-packages
:
python -c "import site; print(site.getsitepackages()[0])"
然后检查软件包的安装位置:py -m pip show <package-name>
它应该提供有关包裹的信息,包括包裹的位置。检查此位置是否与上一个命令中显示的位置相同。
如果位置不相同,则使用的是未绑定到彼此的python和pip