-1

我通常是 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)。人们链接的问题解释了如何使用虚拟环境。我做的都是正确的。

4

1 回答 1

0

显然问题是我的代码和 virtualenv 存在于 Dropbox 上。这意味着它会被复制到每台新计算机上。它在第二台计算机上的 powershell 中工作的事实只是一个侥幸......现在我首先需要找出一种更好的方法来做到这一点......叹息

于 2016-07-12T23:03:09.197 回答