Python包不使用pip在virtualenv中安装

我在安装扭曲时遇到问题

pip --version

pip 1.1 from /home/chris/GL/GLBackend/glenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg(python 2.7)

创建一个虚拟环境

chris@chris-mint ~/GL/GLBackend $ sudo virtualenv -p python2.7 glenv

使用解释器/usr/bin/python2.7运行virtualenv glenv / bin / python2.7中的新python可执行文件同时在glenv / bin / python中创建可执行文件安装distribute ................ .................................................. .................................................. .................................................. .......................完成。 安装pip ...............完成。

以防万一,我将启用所有权限

chris@chris-mint ~/GL/GLBackend $ sudo chmod -R 777 glenv

chris@chris-mint ~/GL/GLBackend $ source glenv/bin/activate


(glenv)chris@chris-mint ~/GL/GLBackend $ pip freeze

argparse == 1.2.1分布== 0.6.24 wsgiref == 0.1.2

这里没有列出安装的扭曲

(glenv)chris@chris-mint ~/GL/GLBackend $ sudo pip install twisted

需求已满足(使用 - 升级升级):在/usr/local/lib/python2.7/dist-packages中扭曲需求已满足(使用--upgrade升级):zope.interface> = 3.6.0 in / usr / local / lib / python2.7 / dist-packages(来自扭曲)需求已经满足(使用--upgrade升级):分布在/usr/local/lib/python2.7/dist-packages(来自zope.interface > = 3.6.0-> twisted)正在清理...(glenv)chris @ chris-mint〜/ GL / GLBackend $ pip uninstall twisted无法卸载要求扭曲,未安装存储完整日志/home/chris/.pip/ pip.log

但是,当我安装它说它已经安装。 强制安装:

sudo pip install -I twisted

下载/解包扭曲下载Twisted-12.3.0.tar.bz2(2.6Mb):2.6Mb下载运行setup.py egg_info为包裹扭曲。 。 。

成功安装扭曲的zope.interface分布清理...

但它仍然没有安装

(glenv)chris@chris-mint ~/GL/GLBackend $ pip freeze

argparse == 1.2.1分布== 0.6.24 wsgiref == 0.1.2

**当我尝试运行使用双绞线的Python脚本时,出现错误提示未安装双绞线。 那是:

ImportError:没有名为twisted.python的模块**


这里的问题是,你不应该使用sudo 。 这导致pip尝试安装到/usr/local/lib而不是~/glenv/lib 。 (而且,因为您使用了sudo ,所以它成功地这样做了,但这对您没有帮助,因为您不允许系统站点包在您的venv中。)

sudo pip可能导致这种行为的原因有很多,但最可能的是:在大多数系统上(包括我可以立即访问的各种Mac和RHEL / CentOS盒子), sudoers文件将重置您的环境,然后加回在少数白名单环境变量中。 这意味着当你使用sudo pip ,它不会看到virtualenv设置的环境变量,所以它会回退到做默认的事情并安装到你的系统Python中,而不是你的venv。

但是,真的,这并不重要。 答案是一样的:只要做pip install而不是sudo pip install

请注意,您还希望删除virtualenv调用中的sudo ,因为这可能会导致venv设置不正确(这就是为什么您需要sudo chmod ,否则不需要)。 在用户主目录下安装东西的重点在于,您可以使用普通用户权限来执行此操作。

作为一个便笺,你也可能想升级到更新的virtualenv / pip ,因为1.8和1.2有一些错误修正和改进。 但是,我证实,即使使用最新版本(1.8.4和1.2.1),我也遇到了与您完全相同的问题,所以我认为这与此无关。

链接地址: http://www.djcxy.com/p/66197.html

上一篇: Python packages not installing in virtualenv using pip

下一篇: pip finds package with search but won't install it