Python 3.7.9 中的虚拟环境。我错过了什么?

Virtual Environments in Python 3.7.9. What am I missing?

我的旧电脑坏了。这是我使用虚拟环境重新开始的机会。

我开始在新的 Windows 10 计算机上全新安装 python 2.7.18 和 3.7.9。 (我是为所有用户安装 3.7.9 还是为一个帐户安装 python 都没有关系。我都尝试过,结果相同。)

我想为 python 3 设置 venv。(我尝试使用 venv virtualenv 结果相同。)

我转到我的项目目录并键入:

py -3.7 -m pip list

>Package    Version
>---------- -------
>pip        20.2.3  
>setuptools 47.1.0

我为我的项目创建了一个虚拟环境。

py -3.7 -m venv venv

并激活虚拟环境。

venv\Scripts\activate.bat

提示更改为显示我正在使用虚拟环境。

py -3.7 -m pip list

>Package    Version
>---------- -------
>pip        20.2.3  
>setuptools 47.1.0

现在我在虚拟环境中安装 wxPython 的日常构建。

py -3.7 -m pip install "d:\((username))\Downloads\Python\python3.7-64\wxPython-4.1.1a1.dev4959+47c4a913-cp37-cp37m-win_amd64.whl"

这将成功安装 wxPython。提示显示我还在虚拟环境中。我确认安装。

py -3.7 -m pip list

>Package    Version
>---------- ------------------------
>numpy      1.19.2   
>Pillow     7.2.0   
>pip        20.2.3   
>setuptools 47.1.0   
>six        1.15.0   
>wxPython   4.1.1a1.dev4959+47c4a913  

这正是我所期望的。我现在停用虚拟环境。

deactivate

提示变了,所以我不再使用虚拟环境了。但是

py -3.7 -m pip list

>Package    Version
>---------- ------------------------
>numpy      1.19.2  
>Pillow     7.2.0  
>pip        20.2.3  
>setuptools 47.1.0  
>six        1.15.0  
>wxPython   4.1.1a1.dev4959+47c4a913  

这不是我所期望的。我认为 wxPython(以及 numpy、Pillow 和 6)将不再出现。查看添加文件的位置,我看到对 C:\Users((username))\AppData\Local\Programs\Python\Python37\Lib\site-packages 进行了 pip 更改,而不是 D:((username))\Documents\Programming\Python((projectname)) \venv\Lib\site-packages,这是我所期望的。

当我再次启动 Python 3.7.9 时,我仍然安装了所有软件包,但没有加载我的虚拟环境。所以整个虚拟环境的概念完全被忽略了。

任何人都可以帮助我了解我做错了什么,更重要的是,我需要做哪些不同的事情吗?

谢谢

因为你的系统中有多个 python pip 是误导。您可以遵循两个选项:

  1. Hard way:您可以更改环境变量以设置要使用的环境变量并删除其他路径 python。因此,除非您指定 python 的位置,否则您的包裹将没问题。你也应该为你的 pip 做同样的事情。当你只依赖环境变量时,破坏事情要容易得多。

  2. 简单方法:删除所有 python 版本并下载 anaconda。它可以在您享受编码的同时轻松顺畅地管理环境。

4 个月前我遇到了同样的问题,这里是问答: Python and pip versions are different and potentially causing problem

试试这个,如果问题仍然存在,请告诉我。

py -3.7 将始终引用全局 python 安装并忽略您的 virtualenv

当你在你的 virtualenv 中时,你应该使用 python -m pip 而不是

感谢您的回复。原来py launcher和虚拟环境不兼容。这是我所做的。

我已经设置了批处理文件,这样我就可以 select 我正在使用的 python(2.7 或 3.7)。批处理文件将 Windows 路径设置为指向正确的 Python 安装。 (我还没有设置任何其他环境变量,但如果我发现需要,我会编辑它。)

然后我在使用 python 3.7 设置和访问我的虚拟环境时使用“python”而不是“py -3.7”。

所以当我在虚拟环境中时,

python -m pip list

>numpy      1.19.2  
>Pillow     7.2.0  
>pip        20.1.1  
>setuptools 47.1.0  
>six        1.15.0  
>wxPython   4.1.1a1.dev4959+47c4a913  

给我的结果不同于

py -3.7 -m pip list

>pip        20.1.1   
>setuptools 47.1.0

所以你好设置路径,再见 py 启动器。现在虚拟环境像我预期的那样工作了。