【发布时间】:2016-07-13 07:03:09
【问题描述】:
我通常是 unix/Mac 人员,所以我不确定这可能是什么关系,但我的一个用户在通过 cmd 命令行运行的 windows 框(windows 7?)上。
我为 Windows 设置了 virtualenv,在这个系统上(其他计算机工作正常)我可以启动 virtualenv (activate.bat),当我从 venv/Scripts 目录中运行 python 时,一切看起来都很好。我的 sys.path 是正确的。
当我 cd .. 并再次运行 python(或从其他任何地方运行 python)时,如果我不在 virtualenv 中,sys.path 就是 sys.path。
我的提示符前仍然有 (venv),所以 venv 认为它仍然处于活动状态...
正确的系统路径:
['', 'C:\\Windows\\system32\\python27.zip',
'C:\\Users\\dellam\\Dropbox (CEP)\\users\\brianp\\course\\CYAN\\venv\\DLLs',
'C:\\Users\\dellam\\Dropbox (CEP)\\users\\brianp\\course\\CYAN\\venv\\lib',
'C:\\Users\\dellam\\Dropbox CEP)\\users\\brianp\\course\\CYAN\\venv\\lib\\plat-win',
[ETC]]
来自 venv\Scripts 以外任何位置的 sys.path:
sys.path
['', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python27\\DLLs',
'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win',
'C:\\Python27\\lib\\lib-tk', 'C:\\Python27',
'C:\\Python27\\lib\\site-packages']
我正在正确使用 virtualenv。至少,它可以在其他计算机上运行。我正确地创建了一个 venv,并且我正在激活它。它在我的提示符后面附加了 (venv)。人们链接的问题解释了如何使用虚拟环境。我做的都是正确的。
【问题讨论】:
-
这可能以前在this question 中已经回答过 - 你可以检查一下吗?还应该有一个
deactivate.bat- 你运行它是为了摆脱 venv 吗? -
我已激活。我已经运行了 activate.bat,并且 (venv) 在我的命令行中,但是 sys.path 不正确,除非我从 venv/Scripts 运行 python。我相信我正确使用了 venv,因为它适用于其他系统......
-
Scripts 目录中的
where python与其他目录相比有何不同? -
在这两种情况下,都是 C:\python27\python.exe
-
你没有venv/Scripts/python.exe吗?如果是这样
where至少应该在 Scripts 目录是当前目录时首先找到它。
标签: python windows python-venv