没有名为pkg_resources的模块

ign*_*low 416 python django pip setuptools virtualenv

我正在将一个Django应用程序部署到开发服务器,并在运行pip install 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

编辑这只发生在virtualenv中.如果我在virtualenv之外打开一个控制台,那么就存在pkg_resources

但我仍然得到同样的错误.关于为什么pkg_resources不在路径上的任何想法?

cwc*_*cwc 601

2018年7月更新

大多数人现在应该使用pip install setuptools(可能还有sudo).

有些人可能需要(重新)安装python-setuptools通过自己的包管理器(包apt-get install,yum install等等).

此问题可能高度依赖于您的操作系统和开发环境.如果以上内容不适合您,请参阅下面的遗产/其他答案.

说明

此错误消息是由丢失/损坏的Python setuptools包引起的.Per Matt M.的注释和setuptools问题#581,下面提到的引导脚本不再是推荐的安装方法.

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

遗产答案

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

要解决此问题,请运行以下设置脚本setuptools:

wget https://bootstrap.pypa.io/ez_setup.py -O - | python
Run Code Online (Sandbox Code Playgroud)

(或者如果您没有wget安装(例如OS X),请尝试

curl https://bootstrap.pypa.io/ez_setup.py | python
Run Code Online (Sandbox Code Playgroud)

可能有sudo前置.)

如果您有任何版本distribute或任何setuptools低于0.6的版本,则必须先将其卸载.*

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


*如果您已经有效distribute,将其升级到"兼容包装"可以让您setuptools更轻松.但如果事情已经破裂,不要试试.

  • 管道卷曲到当地的命令总是吓到我,但这很有效.:)虽然是YMMV,但我还是运行了`sudo python`. (42认同)
  • +1令人敬畏的卷发1衬里解决了我的问题100% (5认同)
  • 这是去年最好的答案......但截至2013年中期,`distribute`已经过时了,`setuptools`是它的继任者.我将编辑更新它的答案,但我不确定这是处理它的最佳方式,所以有人可以恢复编辑,在这种情况下:转到[这里](https://pypi.python.org/ PyPI将/ setuptools的/ 0.9.8#安装的指令). (5认同)
  • 在Cygwin下我必须安装**python-setuptools**包.这让**easy_install**再次工作,遇到了同样的问题.然后我使用`easy_install pip`让pip再次运行.我的问题源于Cygwin在安装不相关的东西时将Python从2.6升级到2.7. (4认同)

小智 115

sudo apt-get install --reinstall python-pkg-resources
Run Code Online (Sandbox Code Playgroud)

在Debian中为我修复它.好像卸载一些.deb软件包(在我的情况下是扭曲集)已经打破了python用于查找软件包的路径

  • 大!它也解决了Ubuntu中的这个问题 (8认同)
  • 我正在使用Python 3所以我必须运行sudo apt-get install --reinstall python3-pkg-resources并修复它.谢谢! (7认同)

Ali*_*rak 52

尝试在ubuntu 13.10上安装rhodecode到virtualenv时,我看到了这个错误.对我来说,解决方案是运行

pip install --upgrade setuptools
pip install --upgrade distribute 
Run Code Online (Sandbox Code Playgroud)

在我运行easy_install rhodecode之前.

  • `pip install --upgrade setuptools`独自为我做了伎俩. (11认同)
  • 由于同样的错误,我无法运行`pip install --upgrade setuptools`:`没有名为pkg_resources的模块 (3认同)

pra*_*ram 33

它也发生在我身上.我认为如果在virtualenv使用setuptools时,requirements.txt包含"distribute"条目,则会出现问题.Pip将尝试修补setuptools以便为分发腾出空间,但不幸的是它会在一半时间内失败.

简单的解决方案是删除当前的virtualenv,然后使用--distribute参数创建一个新的virtualenv.

使用virtualenvwrapper的一个例子:

$ deactivate
$ rmvirtualenv yourenv
$ mkvirtualenv yourenv --distribute
$ workon yourenv
$ pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

  • 当其他解决方案都没有时(使用Ubuntu 16.04),这对我有所帮助 (2认同)

小智 16

在CentOS 6中安装包python-setuptools修复了它.

yum install python-setuptools
Run Code Online (Sandbox Code Playgroud)


ajt*_*rds 14

我之前有这个错误,评价最高的答案给我一个错误,试图下载ez_setup.py文件.我找到了另一个源,因此您可以运行该命令:

curl http://peak.telecommunity.com/dist/ez_setup.py | python
Run Code Online (Sandbox Code Playgroud)

我发现我还必须使用sudo才能使它工作,所以你可能需要运行:

sudo curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python
Run Code Online (Sandbox Code Playgroud)

我还创建了另一个可以从以下位置下载脚本的位置:

https://gist.github.com/ajtrichards/42e73562a89edb1039f3


pti*_*tim 14

在尝试了几个这样的答案之后,然后联系了一位同事,在Ubuntu 16.04上对我有用的是:

pip install --force-reinstall -U setuptools
pip install --force-reinstall -U pip
Run Code Online (Sandbox Code Playgroud)

在我的情况下,它只是一个旧版本的枕头3.1.1有麻烦(枕头4.x工作正常),现在已经解决了!


Eve*_*ews 10

很多答案都推荐以下内容,但如果您仔细阅读该脚本的源代码,您会意识到它已被弃用。

wget https://bootstrap.pypa.io/ez_setup.py -O - | python
Run Code Online (Sandbox Code Playgroud)

如果你的点也坏了,这也不起作用。

pip install setuptools
Run Code Online (Sandbox Code Playgroud)

我发现我必须运行Ensure pip、setuptools 和wheel are up to date中的命令,才能让 pip 再次工作。

python -m pip install --upgrade pip setuptools wheel
Run Code Online (Sandbox Code Playgroud)


Tar*_*ion 8

需要多一点sudo.然后使用easy_install来安装pip.作品.

sudo wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
sudo easy_install pip
Run Code Online (Sandbox Code Playgroud)


mrg*_*gnw 5

我通过这样做修复了virtualenv的错误:

从中复制pkg_resources.py

/Library/Python/2.7/site-packages/setuptools

/Library/Python/2.7/site-packages/

这可能是一个廉价的解决方法,但它对我有用.

.

如果设置工具不存在,您可以尝试通过键入来安装system-site-packages virtualenv --system-site-packages /DESTINATION DIRECTORY,将最后一部分更改为要安装到的目录.pkg_rousources.py将在lib/python2.7/site-packages中的该目录下


小智 5

如果您使用的是 python3 ,您可以使用该命令 sudo apt-get install --reinstall python3-pkg-resources ,我就是这种情况。


小智 5

我在安装最新的Python版本后遇到了这个问题3.10.4。不知何故,setuptools包和 pip 被删除了。

我使用以下命令来解决该问题:在 [Windows] 中

py -m ensurepip --default-pip
Run Code Online (Sandbox Code Playgroud)