激活后虚拟环境没有改变

时间:2019-11-04 19:26:23

标签: python python-venv

我的本​​地PC上只有1个库,为numpy。我在文件夹中创建了一个虚拟环境,将其激活,然后在其中pip安装了django。 django在我的venv的site-packages文件夹中,但是如果我在我的PC上的任何地方激活venv来运行pip冻结,则表明numpy异常。 我可以运行任何需要安装在venv中的软件包的命令的唯一方法是从该文件夹运行它。 我见过许多类似的问题,但是它们很旧或无法回答为什么会发生这种情况。 例如,我在命令行中输入:

C:\Users\myname\Desktop>python -m pip freeze
numpy==1.9.6
C:\Users\myname\Desktop\Venv0\Scripts>python -m pip freeze
Django==2.2.7
pytz==2019.3
sqlparse==0.3.0

C:\Users\eloim\Desktop\Venv0\Scripts>activate

(Venv0) C:\Users\eloim\Desktop\Venv0\Scripts>
(Venv0) C:\Users\eloim\Desktop\Venv0\Scripts>python -m pip freeze
Django==2.2.7
pytz==2019.3
sqlparse==0.3.0

(Venv0) C:\Users\eloim\Desktop>python -m pip freeze
numpy==1.9.6

据我阅读的文档显示,激活venv后,我应该只能找到django软件包。我哪里错了?我不了解哪个概念?

我问这个问题是因为我必须在特定的文件夹中运行django的一些命令,但是scripts文件夹之外的任何地方都找不到软件包。

预先感谢

-编辑- 这是我在哪里使用python时得到的:

C:\Users\myname>where python
C:\Users\myname\AppData\Local\Programs\Python\Python37-32\python.exe
C:\Users\myname\AppData\Local\Microsoft\WindowsApps\python.exe

(Venv0) C:\Users\myname\Desktop>where python
C:\Users\myname\AppData\Local\Programs\Python\Python37-32\python.exe
C:\Users\myname\AppData\Local\Microsoft\WindowsApps\python.exe

(Venv0) C:\Users\myname\Desktop\Venv0\Scripts>where python
C:\Users\myname\Desktop\Venv0\Scripts\python.exe
C:\Users\myname\AppData\Local\Programs\Python\Python37-32\python.exe
C:\Users\myname\AppData\Local\Microsoft\WindowsApps\python.exe

看到这个即时消息后,我就迷路了激活VE后,什么都没有改变,那为什么有用呢?

这也是点冻结导致的结果:

C:\Users\myname>pip freeze
numpy==1.9.6

(Venv0) C:\Users\myname\Desktop>pip freeze
numpy==1.9.6

(Venv0) C:\Users\myname\Desktop\Venv0\Scripts>pip freeze
Fatal error in launcher: Unable to create process using '"c:\users\myname\venv0\scripts\python.exe"  "C:\Users\myname\Desktop\Venv0\Scripts\pip.exe" freeze'

C:\Users\eloim\Desktop\Venv0\Scripts>pip freeze
Fatal error in launcher: Unable to create process using '"c:\users\eloim\venv0\scripts\python.exe"  "C:\Users\eloim\Desktop\Venv0\Scripts\pip.exe" freeze'

因此,再次看来,激活VE实际上并没有改变我的python,但是此错误显然意味着某些事情。 感谢您已经提供的帮助。

1 个答案:

答案 0 :(得分:0)

根据您的描述,有2个观察结果。

  
      
  1. “ C:\ Users \ myname \ Desktop”是您的主要Python安装目录
  2.   
  3. 您已将numpy安装在“ C:\ Users \ myname \ Desktop”上,而不是在“ C:\ Users \ eloim \ Desktop \ Venv0 \ Scripts”上
  4.   

而不是使用'python -m pip Frozen',只需使用'pip Frozen'。您会看到区别。

To install package in your virtualenv

1. Activate virtual env and install using 'pip install <package>'

请记住:这不是问题。

In your case , 
1. the keyword 'python' is creating a confusion for you. 
2. When you use python , it is considering the 'python.exe' path , rather than the directory you are in.