我正在将Django应用程序部署到开发服务器,并且在运行时遇到此错误pip install -r requirements.txt:
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。最初,我认为这可能不会安装到virtualenv中的Python,所以我setuptools 2.6使用以下命令将了(与Python相同的版本)安装到virtualenv中的Python站点软件包:
pkg_resources
setuptools
virtualenv
setuptools 2.6
sh setuptools-0.6c11-py2.6.egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages
编辑:这只发生在virtualenv内部。如果我在virtualenv外部打开控制台,则该控制台pkg_resources存在,但仍然出现相同的错误。
关于为什么pkg_resources不在路上的任何想法?
现在大多数人都应该使用pip install setuptools(可能与一起使用sudo)。
pip install setuptools
有些人可能需要(重新)安装python-setuptools通过他们的软件包管理的软件包(apt-get install,yum install,等)。
python-setuptools
apt-get install,yum install
此问题可能高度取决于你的操作系统和开发环境。如果上述方法不适用于你,请参见下面的旧式/其他答案。
说明
此错误消息是由缺少/损坏的Python setuptools软件包引起的。根据Matt M.的注释和setuptools问题#581,以下引用的引导脚本不再是推荐的安装方法。
引导脚本说明将保留在下面,以防对任何人有帮助。
旧版答案
ImportError今天我在尝试使用点子时遇到了同样的问题。不知何故,该setuptools软件包已在我的Python环境中删除。
要解决此问题,请运行以下脚本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,或setuptools0.6以下的版本,则必须先将其卸载。*
有关更多详细信息,请参见安装说明。
*如果你已经可以使用distribute,将其升级到将你切换到的“兼容性包装器” setuptools会更容易。但是,如果事情已经坏了,请不要尝试。
*
distribute