我已经在装有 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 上不起作用。
为什么脚本没有在虚拟环境的上下文中运行?
最佳答案
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
激活环境后。
关于python - Windows 上的 virtualenv 激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18462728/