我正在将一个Django应用程序部署到开发服务器,并在运行pip install -r requirements.txt
时遇到此错误: python
Traceback (most recent call last): File "/var/www/mydir/virtualenvs/dev/bin/pip", line 5, in <module> from pkg_resources import load_entry_point ImportError: No module named pkg_resources
pkg_resources
彷佛随setuptools
一块儿setuptools
。 最初我认为这可能没有安装到virtualenv中的Python,因此我使用如下命令将setuptools 2.6
(与Python相同的版本)安装到virtualenv中的Python站点包: bootstrap
sh setuptools-0.6c11-py2.6.egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages
编辑:这只发生在virtualenv内。 若是我在virtualenv以外打开一个控制台,那么存在pkg_resources
,但我仍然遇到一样的错误。 ubuntu
关于为何pkg_resources
不在路径上的任何想法? 服务器
2018年7月更新 app
大多数人如今应该使用pip install setuptools
(可能使用sudo
)。 curl
有些人可能须要(从新)经过他们的包管理器安装python-setuptools
包( apt-get install
, yum install
等)。 ui
此问题可能高度依赖于您的操做系统和开发环境。 若是以上内容不适合您,请参阅下面的遗产/其余答案。 url
说明 spa
此错误消息是由缺乏/损坏的Python setuptools
包引发的。 Per Matt M.的注释和setuptools问题#581 , 下面提到的引导脚本再也不是推荐的安装方法。 操作系统
引导脚本说明将保留在下面,以防它对任何人都有帮助。
遗产答案
我在尝试使用pip时遇到了一样的ImportError
。 不知何故,个人Python环境中删除了setuptools
包。
要解决此问题,请运行setuptools
的安装脚本:
wget https://bootstrap.pypa.io/ez_setup.py -O - | python
(或者若是您没有安装wget
(例如OS X),请尝试
curl https://bootstrap.pypa.io/ez_setup.py | python
可能有sudo
前置。)
若是你有任何版本的distribute
版或任何低于0.6的setuptools
,你必须先卸载它。*
有关详细信息,请参阅安装说明
*若是您已经有工做distribute
,将其升级到“兼容包装”,将您切换到setuptools
更容易。 但若是事情已经破裂,不要试试。
当我将virtualenv激活为与建立它的人不一样的用户时,我遇到了这个问题。 这彷佛是一个许可问题。 当我尝试@cwc的答案并在输出中看到这个时,我发现了这个:
Installing easy_install script to /path/env/bin error: /path/env/bin/easy_install: Permission denied
切换回建立virtualenv的用户,而后运行原始pip install
命令没有问题。 但愿这能够帮助!
我今天也遇到了这个问题。 我只在虚拟环境中遇到问题。
个人解决方案是停用虚拟环境,删除而后用pip卸载virtualenv并从新安装它。 以后我为个人项目建立了一个新的虚拟环境,而后pip在虚拟环境中和正常环境同样工做正常。
它也发生在我身上。 我认为若是在virtualenv使用setuptools时,requirements.txt包含“distribute”条目,则会出现问题。 Pip将尝试修补setuptools以便为分发腾出空间,但不幸的是它会在一半时间内失败。
简单的解决方案是删除当前的virtualenv,而后使用--distribute参数建立一个新的virtualenv。
使用virtualenvwrapper的一个例子:
$ deactivate $ rmvirtualenv yourenv $ mkvirtualenv yourenv --distribute $ workon yourenv $ pip install -r requirements.txt
尝试在ubuntu 13.10上安装rhodecode到virtualenv时,我看到了这个错误。 对我来讲,解决方案是运行
pip install --upgrade setuptools pip install --upgrade distribute
在我运行easy_install rhodecode以前。