首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python 3.7.9中的虚拟环境。我遗漏了什么?

Python 3.7.9中的虚拟环境。我遗漏了什么?
EN

Stack Overflow用户
提问于 2020-09-25 23:05:27
回答 3查看 2.1K关注 0票数 0

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

我首先在一台新的Windows 10计算机上重新安装python 2.7.18和3.7.9。(我是为所有用户安装python 3.7.9,还是只安装一个帐户,这都不重要。我两次都试过,结果是一样的。

我想为python 3设置venv。(我尝试使用venvvirtualenv来获得相同的结果。)

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

代码语言:javascript
运行
复制
py -3.7 -m pip list

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

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

代码语言:javascript
运行
复制
py -3.7 -m venv venv

激活虚拟环境。

代码语言:javascript
运行
复制
venv\Scripts\activate.bat

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

代码语言:javascript
运行
复制
py -3.7 -m pip list

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

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

代码语言:javascript
运行
复制
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。提示显示我仍然处于虚拟环境中。我确认了安装。

代码语言:javascript
运行
复制
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  

这正是我所期望的。我现在关闭虚拟环境。

代码语言:javascript
运行
复制
deactivate

提示更改,因此我不再使用虚拟环境。但

代码语言:javascript
运行
复制
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)不会再出现了。查看添加文件的位置,我发现pip更改是对C:\Users((username))\AppData\Local\Programs\Python\Python37\Lib\site-packages,进行的,而不是对D:((username))\Documents\Programming\Python((projectname))\venv\Lib\site-packages,的更改,这正是我所期望的。

当我再次启动Python3.7.9时,我仍然可以在没有加载虚拟环境的情况下安装所有软件包。因此,整个虚拟环境的概念被完全忽视。

有谁能帮我理解我做错了什么,更重要的是,我需要做些什么?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-09-28 15:02:43

谢谢你的回复。事实证明,py发射器和虚拟环境是不兼容的。这就是我所做的。

我设置了批处理文件,以便可以选择使用哪个python (2.7或3.7)。批处理文件将Windows路径设置为指向正确的Python安装。(我还没有必要设置任何其他环境变量,但是如果需要的话,我会编辑它。)

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

所以当我身处虚拟环境时,

代码语言:javascript
运行
复制
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  

给了我不同的结果

代码语言:javascript
运行
复制
py -3.7 -m pip list

>pip        20.1.1   
>setuptools 47.1.0

所以,你好设置路径,再见,py发射器。现在,虚拟环境就像我所期望的那样工作。

票数 -1
EN

Stack Overflow用户

发布于 2020-09-25 23:54:52

py -3.7将始终引用全局python安装,而忽略您的虚拟化and。

当您在虚拟环境中时,应该使用python -m pip来代替

票数 0
EN

Stack Overflow用户

发布于 2020-09-25 23:43:27

因为您的系统中有多个python,所以pip是错误的。您可以遵循以下两种选择:

  1. Hard way:您可以更改环境变量以设置要使用的变量,并移除其他用于python的路径。因此,除非您指定python的位置,否则您的包就可以了。你也应该为你的点子做同样的事。当您只依赖于环境变量时,就更容易打破它。

  1. Easy way:删除所有python版本并下载anaconda。在您享受编码过程中,它可以轻松、顺利地管理环境。

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

试试这个,如果问题还在继续,请告诉我。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64072312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档