3

我已经在装有 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 上不起作用。

为什么脚本不在虚拟环境的上下文中运行?

4

1 回答 1

7

virtualenv不会更改启动文件的默认应用程序。

当您安装 Python 时,安装与相应的应用程序相关联的文件.py和文件。因此,当您仅运行(在您的 cmd 中)时,cmd 会查看注册表并找到与文件关联的应用程序,然后使用该应用程序运行该文件。在这种情况下,就是以前安装的..pywC:\Python27\python.exeC:\Python27\pythonw.exeD:\virtualenv_test.py.pyC:\Python27\python.exe

virtualenv activatePATH仅在环境变量的开头添加特定的虚拟环境 python 解释器,因此当您输入时pythoncmd您将得到适当的python.exe执行。

因此,您的问题的解决方案是将您的脚本运行为:

python D:\virtualenv_test.py

激活环境后。

于 2013-08-27T10:51:04.300 回答