我正在将 Django 应用程序部署到开发服务器,并在运行时遇到此错误pip install -r requirements.txt:
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
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不在路上的任何想法?
2018 年 7 月更新
大多数人现在应该使用pip install setuptools(可能与sudo)。
pip install setuptools
sudo
有些人可能需要python-setuptools通过他们的包管理器(apt-get install,yum install等)(重新)安装包。
python-setuptools
apt-get install
yum install
此问题可能高度依赖于您的操作系统和开发环境。如果上述方法不适合您,请参阅下面的旧版/其他答案。
解释
此错误消息是由缺少/损坏的 Pythonsetuptools包引起的。根据 Matt M. 的评论和[setuptools 问题
引导脚本说明将保留在下面,以防它仍然对任何人有帮助。
旧版答案
ImportError我今天在尝试使用 pip 时遇到了同样的情况。不知何故,该setuptools包已在我的 Python 环境中被删除。
ImportError
要解决此问题,请运行以下设置脚本setuptools:
wget https://bootstrap.pypa.io/ez_setup.py -O - | python
(或者如果您没有wget安装(例如 OS X),请尝试
wget
curl https://bootstrap.pypa.io/ez_setup.py | python
可能带有sudo前置。)
如果您有任何版本distribute,或任何setuptools低于 0.6 的版本,您必须先将其卸载。*
distribute
有关详细信息,请参阅安装说明。