没有名为pkg_resources的模块

  • 问题:
  • 我正在将一个Django应用部署到一个dev服务器上,当我运行pip install-r时遇到了这个错误要求.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_资源似乎是与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不在路上?在

  • 答案:
  • ,2018年7月

    现在大多数人都应该使用pip安装setuptools(可能使用sudo

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

    此问题可能高度依赖于您的操作系统和开发环境。如果上面的答案对您无效,请参阅下面的遗留/其他答案

    说明

    此错误消息是由丢失/损坏的Pythonsetuptools包引起的。根据Matt M.的评论和setuptools issue #581,下面提到的引导脚本不再是建议的安装方法

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

    传统答案

    我今天在尝试使用pip时遇到了同样的ImportError。不知何故,在我的Python环境中,setuptools包已经被删除了

    要解决此问题,请运行setuptools的安装脚本

    wget https://bootstrap.pypa.io/ez_setup.py -O - | python

    如果您没有安装代码,请尝试

    curl https://bootstrap.pypa.io/ez_setup.py | python

    可能在前面加了sudo

    如果你有任何版本的distribute,或任何低于0.6的setuptools都必须先卸载它*

    看到了吗Installation Instructions更多细节

    *如果您已经有了一个正在工作的分发版,那么将其升级到“兼容性包装器”(compatibility wrapper)以便切换到setuptools。但如果事情已经破裂了,就不要那么做