编辑#2 找到解决方案;见下文。
我正在使用VirtualEnv在Flask中编写一个小应用程序。这远非我第一次这样做,但是这次和过去两次我尝试过我遇到了同样的问题。当我. flask/bin/activate
并尝试安装软件包 - 例如pip install flup
时 - 它会继续全局安装,而不是安装在VirtualEnv中。奇怪的是,它只发生在我deactivate
之后,而且它在这方面做得不一致。
也就是说,如果我一次性完成所有操作,我似乎能够安装所需的一切,甚至偶尔在deactivate
之后安装,但是在一段时间之后它只是停止工作它开始尝试安装到我的全局Python site-packages
中。 (当然,它在执行此操作时也要求权限。在我理解发生了什么之前,我试图用sudo
强制它,认为我不小心把它带到了自己身上sudo virtualenv flask
- 或者什么东西,但不,它出于某种其他原因而走向全球。)
我没有做任何有趣的事情,比如使用--system-site-packages
参数,我在VirtualEnv配置开始发生之前没有改变任何东西。它第一次发生时,我把它归结为侥幸。现在它变得非常恼火,因为我没有心情卸下所有东西并每次重新安装它,或者祈祷我会在引导脚本中想到我需要的一切。
我没有包含任何错误消息,因为它们不是(或似乎不是)特别有价值;只是requirement already satisfied
一遍又一遍地对我大喊大叫。
编辑#1 我正在逐渐淡化问题,但我仍然没有解决方案。我在同一目录中创建了一个新的Flask项目,cd
- 编辑它,激活其VirtualEnv等,然后运行which pip
。这是新的VirtualEnv的点子 - 正确的点子。我停用了cd
- 编辑到我的原始项目,激活了VirtualEnv,然后运行了which pip
。它吐出了另一个项目 - 新的 - pip。我rm -r
- 修改了新的测试项目,回到原来的版本,再次运行which pip
,然后吐出/usr/local/bin/pip
。哦。行。
编辑#2:解决方案我可能没有找到确切的原因,但我确实找到了解决方案。 bin/activate
和bin/pip
脚本本身在某种程度上被改变了,可能是因为意外地同时运行了两个VirtualEnv(?)。也许只是巧合,它在以前从未发生过三次连续发生过。说不上。
我cat
- 编辑activate
,当然,第42行是
VIRTUAL_ENV="/Users/chaseries/blueprint/python/flask2/flask"
而不是
VIRTUAL_ENV="/Users/chaseries/blueprint/python/flask/flask"
我更改了它,再次运行which pip
,并得到了正确的结果。尝试安装,得到一个堆栈跟踪,导致我bin/pip
,并发现它的shebang是错误的。将其改为正确的道路,一切都运作良好。
答案 0 :(得分:2)
我遇到了同样的问题。对我来说,原因是我的virtualenv在路径上有空位。
将virtualenv移动到无空间的路径解决了这个问题。
答案 1 :(得分:0)
如果您已重命名包含ENV - 虚拟环境目录的项目目录,请尝试擦除ENV目录并重新创建virtualenv并激活它并重新安装pip依赖项。
TL-DR; 删除虚拟环境,创建新环境,激活它并再次发出pip命令。
答案 2 :(得分:0)
使用此链接(Python packages not installing in virtualenv using pip)。
如果你的shebang没问题,请确保在安装到虚拟环境时不要使用“sudo -H”。