我已经在装有Python 2.7的Windows 7计算机上安装了virtualenv 1.10。
我创建了一个名为TESTENV的虚拟环境。它位于C:\
如果我运行C:\TESTENV\Scripts\activate
,然后输入python
,然后输入:
import sys
print sys.prefix
它输出C:\TESTENV
,如同表达。
但如果我运行D:\virtualenv_test.py
(这是一个包含我上面使用的两行代码的脚本),它会输出C:\Python27
。
我尝试在脚本中添加一个shebang行,但这在Windows上不起作用。
为什么脚本没有在虚拟环境的上下文中运行?
答案 0 :(得分:7)
virtualenv
不会更改启动文件的默认应用程序。
安装Python时,安装会将.py
和.pyw
个文件与相应的C:\Python27\python.exe
和C:\Python27\pythonw.exe
个应用相关联。因此,当您(仅在您的cmd中)运行D:\virtualenv_test.py
时,cmd会查看注册表并找到与.py
文件关联的应用程序,然后使用该应用程序运行该文件。在这种情况下,这是先前安装的C:\Python27\python.exe
。
virtualenv
activate
仅在PATH
环境变量的开头添加了特定的虚拟环境python解释器,因此当您在python
中键入cmd
时将获得相应的python.exe
执行。
因此,您的问题的解决方案是将脚本运行为:
python D:\virtualenv_test.py
激活环境后。