一尘不染

Python-没有名为pkg_resources的模块

python

我正在将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站点软件包:

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不在路上的任何想法?


阅读 1200

收藏
2020-02-16

共1个答案

一尘不染

现在大多数人都应该使用pip install setuptools(可能与一起使用sudo)。

有些人可能需要(重新)安装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会更容易。但是,如果事情已经坏了,请不要尝试。

2020-02-16