我已经在Windows7上安装了Virtualenv1.10,上面有Python2.7。
我已经创建了一个名为TESTENV的虚拟环境。它位于C:\
如果我运行C:\TESTENV\Scripts\activate
,然后键入python
,后跟:
import sys
print sys.prefix
它输出C:\TESTENV
,如expected所示。
但是如果我运行D:\virtualenv_test.py
(这是一个包含我上面使用的两行代码的脚本),它会输出C:\Python27
。
我试着在脚本中添加一个shebang行,但这在Windows上不起作用。
为什么脚本不在虚拟环境的上下文中运行?
virtualenv
不会更改启动文件的默认应用程序。安装Python时,安装程序将
.py
和.pyw
文件与适当的C:\Python27\python.exe
和C:\Python27\pythonw.exe
应用程序相关联。因此,当您只运行D:\virtualenv_test.py
时(在您的cmd中),cmd会查找注册表并找到与.py
文件关联的应用程序,然后使用该应用程序运行该文件。在这种情况下,就是先前安装的C:\Python27\python.exe
。virtualenv
activate
只在PATH
环境变量的开头添加特定的虚拟环境python解释器,因此当您在cmd
中键入python
时,将执行相应的python.exe
。因此,解决问题的方法是将脚本运行为:
在你激活环境之后。
相关问题 更多 >
编程相关推荐