小编典典

没有名为 pkg_resources 的模块

all

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


阅读 115

收藏
2022-03-11

共1个答案

小编典典

2018 年 7 月更新

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

有些人可能需要python-setuptools通过他们的包管理器(apt-get installyum install等)(重新)安装包。

此问题可能高度依赖于您的操作系统和开发环境。如果上述方法不适合您,请参阅下面的旧版/其他答案。

解释

此错误消息是由缺少/损坏的 Pythonsetuptools包引起的。根据 Matt M. 的评论和[setuptools 问题

581](https://github.com/pypa/setuptools/issues/581),下面提到的引导脚本不再是推荐的安装方法。

引导脚本说明将保留在下面,以防它仍然对任何人有帮助。

旧版答案

ImportError我今天在尝试使用 pip 时遇到了同样的情况。不知何故,该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,或任何setuptools低于 0.6 的版本,您必须先将其卸载。*

有关详细信息,请参阅安装说明


  • 如果您已经有一个工作distribute,将它升级到切换到您的“兼容性包装器”setuptools会更容易。但如果事情已经坏了,不要尝试。
2022-03-11