没有名为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不在路径上有任何想法吗?

658637 次浏览

# EYZ0

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

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

此问题可能高度依赖于您的操作系统和开发环境。如果上面的方法对你不起作用,请参阅下面的遗产/其他答案。

解释

此错误消息是由缺少/损坏的Python setuptools包引起的。马特·M。的注释和Setuptools第581期,下面提到的引导脚本不再是推荐的安装方法。

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

遗留的答案

今天在尝试使用pip时,我遇到了相同的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,或任何低于0.6的setuptools,你必须先卸载它

更多细节请参见安装说明


*如果你已经有一个工作的distribute,升级到“兼容性包装”,切换到setuptools会更容易。但如果事情已经坏了,就不要再尝试了。

当我以不同于创建它的用户的身份激活virtualenv时,我遇到了这个问题。似乎是权限问题。当我尝试@cwc的答案并在输出中看到这一点时,我发现了这一点:

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

切换回创建virtualenv的用户,然后运行最初的pip install命令,没有任何问题。希望这能有所帮助!

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

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

这种事也发生在我身上。我认为如果requirements.txt包含一个“分发”条目,而virtualenv使用setuptools,问题就会发生。Pip将尝试修补setuptools以为分发腾出空间,但不幸的是它会中途失败。

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

使用virtualenvwrapper的示例:

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

我在ubuntu 13.10上试图将rhodecode安装到virtualenv时看到过这个错误。对我来说,解决办法就是逃跑

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

在我运行easy_install rhodecode之前。

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

复制pkg_resources.py from

# EYZ0

# EYZ0

这可能是一个廉价的变通办法,但对我来说很管用。

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

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

< p > /一些/ dir /让 /一些/ dir /网站/ < / p >

PIP install -r requirements.txt不能工作,给我上面的错误!

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

我之前遇到过这个错误,评分最高的答案让我在下载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

当我试图跟随OSX的指南时,我偶然发现了这个答案。对我有效的是,在运行python get-pip之后,我还必须运行easy_install pip。这解决了根本无法运行pip的问题。我有一堆旧的macport东西安装。这可能有些矛盾。

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

在windows上,我安装了从www.lfd.uci.edu/ gohlke / pythonlibs /下载的pip,然后遇到了这个问题。

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

sudo apt-get install --reinstall python-pkg-resources

在Debian中为我修复了它。似乎卸载一些.deb包(在我的情况下是扭曲的)破坏了python用来查找包的路径

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

yum install python-setuptools

只需重新安装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

那么一切都会好起来的。

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

sudo yum install python-devel

希望能帮助到有同样处境的人。

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

执行的命令为:

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

没有一个张贴的答案对我有用,所以我重新安装pip,它工作了!

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


sudo easy_install pip


pip install --upgrade setuptools

(参考:# EYZ0)

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

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

我在更新Ubuntu版本后遇到了这个问题。它似乎已经通过并删除了我所有虚拟环境中的设置工具。

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

例如:

~/RepoDir/TestProject$ virtualenv TestEnvironmentDir

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

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

zypper in python-Pygments

还需要一点sudo。然后使用easy_install安装pip。的工作原理。

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

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

步骤:1以root用户登录。

sudo su root

如果存在,卸载python-pip包。

apt-get purge -y python-pip

使用wget命令下载文件(文件下载在pwd)

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

一步:4运行python文件

python ./get-pip.py

最后执行安装命令。

apt-get install python-pip

注意:用户必须为root用户。

我在谷歌应用程序引擎环境中遇到了这个错误。pip install -t lib setuptools修复了这个问题。

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

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

在我的情况下,只有旧版本的枕头3.1.1有问题(枕头4。X工作正常),现在解决了!

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

当我使用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文件来导入它可能是一个更好的解决方案

# EYZ0

我配置Ceph有一个问题执行命令"$ ceph-deploy new node1", 然后执行命令"$ yum -y install python-setuptools", 那么问题就解决了。由于< / p >

如果你在通过conda安装的应用程序中遇到这个问题,解决方案(如此错误报告)中所述)只是简单地安装安装工具:

conda install setuptools

在Windows上,使用python 3.7,这对我来说是有效的:

pip install --upgrade setuptools --user

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

在我的例子中,我最初安装了2个python版本,后来我删除了旧的版本。在创建虚拟环境时

virtualenv venv

是指已卸载的python

什么对我有用

python3 -m virtualenv venv

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

简单的解决方法是使用conda来升级setuptools或整个环境。(windows用户专用)

conda upgrade -c anaconda setuptools

如果setuptools被移除,需要重新安装setuptools。

conda install -c anaconda setuptools

如果这些方法都不起作用,您可以升级conda环境。但我不建议你重新安装和卸载一些包,因为这将加剧情况。

我的系统运行得很好。我用的那一刻 PIP安装virtualenv 问题开始出现了。可能它破坏了安装文件

的路径

很多答案都推荐以下方法,但是如果你通读了脚本的源代码,你就会发现它已经被弃用了。

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

如果你的pip也坏了,这也没用。

pip install setuptools

我发现我必须从确保pip, setuptools和车轮是最新的运行命令,以使pip重新工作。

python -m pip install --upgrade pip setuptools wheel

您可以使用该命令 # EYZ0 如果你使用的是python3,这就是我的情况

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

我使用以下命令来解决问题: 在(Windows) < / p >

py -m ensurepip --default-pip