Python 3.7.9中的虚拟环境我想念什么?

问题描述

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

我首先在新的Windows 10计算机上重新安装了python 2.7.18和3.7.9。 (我为所有用户安装python 3.7.9还是仅为一个帐户都没有关系。我都尝试了相同的结果。)

我想为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所做的点子更改,而不是对D:{{username} )\ Documents \ Programming \ Python({projectname))\ venv \ Lib \ site-packages,这正是我所期望的。

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

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

谢谢

解决方法

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

在您的虚拟环境中时,应改用python -m pip

,

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

  1. 困难的方式:您可以更改环境变量以设置要使用的环境变量,并删除python的其他路径。因此,除非您指定python的位置,否则您的软件包就可以了。您也应该对点进行相同的操作。当您仅依赖环境变量时,破坏事物就容易得多。

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

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

尝试这个,让我知道问题是否仍然存在。

,

感谢您的答复。事实证明py启动器和虚拟环境不兼容。这就是我所做的。

我已经设置了批处理文件,以便可以选择要使用的python(2.7或3.7)。批处理文件将Windows PATH设置为指向正确的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启动器。现在虚拟环境可以像我期望的那样工作。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...