it-swarm.cn

没有名为pkg_resources的模块

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

389
igniteflow

2018年7月更新

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

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

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

说明

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

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

遗产答案

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

要解决此问题,请运行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更容易。但如果事情已经破裂,不要试试。

576
cwc
Sudo apt-get install --reinstall python-pkg-resources

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

109
Marek

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

pip install --upgrade setuptools
pip install --upgrade distribute 

在我运行easy_install rhodecode之前。

44
Ali Akdurak

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

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

使用virtualenvwrapper的一个例子:

$ deactivate
$ rmvirtualenv yourenv
$ mkvirtualenv yourenv --distribute
$ workon yourenv
$ pip install -r requirements.txt
33
pram

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

yum install python-setuptools
15
Paul

我之前遇到此错误,评分最高的答案在尝试下载ez_setup.py文件时出错。我找到了另一个源,因此您可以运行该命令:

curl http://peak.telecommunity.com/dist/ez_setup.py | python

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

Sudo curl http://peak.telecommunity.com/dist/ez_setup.py | Sudo python

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

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

14
ajtrichards

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

pip install --force-reinstall -U setuptools
pip install --force-reinstall -U pip

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

8
ptim

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

Sudo wget https://bootstrap.pypa.io/ez_setup.py -O - | Sudo python
Sudo easy_install pip
7
Tarion

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

从中复制pkg_resources.py

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

/Library/Python/2.7/site-packages/

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

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

5
mrgnw

对我来说,这个错误是因为我有一个名为“site”的子目录!我不知道这是不是一个pip bug,但我开始:

/some/dir/requirements.txt/some/dir/site /

pip install -r requirements.txt不起作用,给我上面的错误!

将子文件夹从“site”重命名为“src”修复了问题!也许pip正在寻找“网站包”?疯。

3
jdg

看起来他们已经离开bitbucket并且现在在github上( https://github.com/pypa/setuptools

要运行的命令是:

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

当我将virtualenv激活为与创建它的人不同的用户时,我遇到了这个问题。这似乎是一个许可问题。当我尝试@cwc的答案并在输出中看到这个时,我发现了这个:

Installing easy_install script to /path/env/bin
error: /path/env/bin/easy_install: Permission denied

切换回创建virtualenv的用户,然后运行原始pip install命令没有问题。希望这可以帮助!

2
Martijn de Milliano

对我来说,它原来是site-packages上的权限问题。因为它只是我的开发环境,所以我提升了权限,一切都恢复了:

Sudo chmod -R a+rwx /path/to/my/venv/lib/python2.7/site-packages/
2
kat

我今天也遇到了这个问题。我只在虚拟环境中遇到问题。

我的解决方案是停用虚拟环境,删除然后用pip卸载virtualenv并重新安装它。之后我为我的项目创建了一个新的虚拟环境,然后pip在虚拟环境中和正常环境一样工作正常。

2
arno_v

如果您遇到通过 conda 安装的应用程序的这个问题,解决方案(如 此错误报告中所述) 只是安装setup-tools:

conda install setuptools
2
Gabriel

显然你缺少setuptools。默认情况下,一些virtualenv版本使用distribute而不是setuptools。在创建virtualenv时使用--setuptools选项或在环境中设置VIRTUALENV_SETUPTOOLS=1

1
Danilo Bargen

如果您使用的是Python 3,则应使用pip3而不是pip。该命令看起来像$ pip3 install requirements.txt

0
user3266968

我在Google App Engine环境中遇到了这个错误。 pip install -t lib setuptools解决了这个问题。

0
Murat Çorlu

当我使用easy-install为python 2.7.14安装pip时,我遇到了同样的问题。对我来说,解决方案是(可能不是最好的,但对我工作,这可能是最简单的)包含easy-install.py的文件夹也包含一个文件夹pkg_resources,并且我已将此文件夹复制粘贴到同一文件夹中我的pip-script.py脚本是(python27\Scripts)。从那以后,我在python27\Lib\site-packages\pip-9.0.1-py2.7.Egg\pip\_vendor文件夹中找到它,它可能是一个更好的解决方案来修改pip-script.py文件来导入它。

0
B Kasza

yum -y install python-setuptools

我配置Ceph有一个问题执行命令"$ ceph-deploy new node1",我执行命令"$ yum -y install python-setuptools",然后问题就消失了。谢谢

0
Lucas

在Opensuse 42.1上,以下修复了此问题:

zypper in python-Pygments
0
David Hamner

我使用CentOS 6.7,我的python只是从2.6.6升级到2.7.11,经过尝试了这么多不同的答案,最后下面的一个完成了这项工作:

Sudo yum install python-devel

希望在同样的情况下帮助某人。

0
shellbye

在我的情况下,我最初安装了2个python版本,后来我删除了旧版本。所以在创建虚拟环境的同时

virtualenv venv

指的是卸载的python

什么对我有用

python3 -m virtualenv venv

当你尝试使用pip时也是如此。

0
Afsan Abdulali Gujarati

我更新了我的Ubuntu构建后遇到了这个问题。它似乎已经完成并删除了我所有虚拟环境中的设置工具。

为了解决这个问题,我将虚拟环境重新安装回目标目录。这清理了缺少的设置工具,让事情再次运行。

例如。:

~/RepoDir/TestProject$ virtualenv TestEnvironmentDir
0
Steve D.

ImportError:没有名为pkg_resources的模块: 解决方案是使用以下命令重新安装python pip。

步骤:1 以root用户身份登录。

Sudo su root

步骤:2 如果存在则卸载python-pip包。

apt-get purge -y python-pip

步骤:3 使用wget命令下载文件(pwd中的文件下载)

wget https://bootstrap.pypa.io/get-pip.py

步骤:4 运行python文件。

python ./get-pip.py

步骤:5 最终exicute安装命令。

apt-get install python-pip

注意: 用户必须是root。

0
Tukadiya Ramesh

在Windows上,我安装了从 www.lfd.uci.edu/~gohlke/pythonlibs/下载的pip 然后就出现了这个问题。

所以我应该先安装setuptools(easy_install)。

0
metaphy

当我试图关注 这个OSX指南 时,我遇到了这个答案。对我有用的是,在运行python get-pip之后,我不得不easy_install pip。这解决了根本无法运行pip的问题。 I did 安装了一堆旧的macport东西。这可能有冲突。

0
KitsuneYMG

简单的解决方案是你可以使用conda来升级setuptools或整个环境。 (特别适用于Windows用户。)

conda upgrade -c anaconda setuptools

如果删除了setuptools,则需要再次安装setuptools。

conda install -c anaconda setuptools

如果这些所有方法都不起作用,您可以升级conda environement。但我不建议你需要重新安装和卸载一些软件包,因为之后它会加剧这种情况。

0
weibin Wang

所有发布的答案都不适合我,所以我重新安装了pip并且它有效!

Sudo apt-get install python-setuptools python-dev build-essential 

Sudo easy_install pip 

pip install --upgrade setuptools

(参考: http://www.saltycrane.com/blog/2010/02/how-install-pip-ubuntu/

0
user13107

在Windows上,使用python 3.7,这对我有用:

pip install --upgrade setuptools --user

--user在您的主目录中安装软件包,不需要管理员权限。

0
David Jablonski

对我来说,一个很好的解决方法是使用--no-download选项来virtualenv(VIRTUALENV_NO_DOWNLOAD=1 tox为tox。)

0
Baczek

只需重新安装setuptools

$ Sudo wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefefe74e
$ tar -zxvf setuptools-0.6c11.tar.gz
$ cd setuptools-0.6c11/
$ Sudo python setup.py build
$ Sudo python setup.py install
$ Sudo pip install --upgrade setuptools

那一切都会好的。

0
Scott Yang