没有名为 pkg_resources 的模块
- 2024-12-18 08:39:00
- admin 原创
- 145
问题描述:
我正在将 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
。最初我以为它可能没有安装到虚拟环境中的 Python 中,因此我setuptools 2.6
使用以下命令将(与 Python 相同的版本)安装到虚拟环境中的 Python 站点包中:
sh setuptools-0.6c11-py2.6.egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages
编辑:这只发生在虚拟环境中。如果我在虚拟环境之外打开控制台,则会pkg_resources
出现,但我仍然会收到相同的错误。
关于为什么pkg_resources
不在路径上,有什么想法吗?
解决方案 1:
2018 年 7 月更新
大多数人现在应该使用pip install setuptools
(可能与sudo
)。
有些人可能需要python-setuptools
通过他们的包管理器(apt-get install
、yum install
等)来(重新)安装该包。
此问题可能高度依赖于您的操作系统和开发环境。如果上述方法对您不起作用,请参阅下面的旧版/其他答案。
解释
此错误消息是由缺失或损坏的 Pythonsetuptools
包引起的。根据 Matt M. 的评论和setuptools 问题 #581,下面提到的 bootstrap 脚本不再是推荐的安装方法。
引导脚本说明将保留在下面,以防它对任何人仍然有帮助。
遗留答案
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
会更容易。但如果已经出现问题,请不要尝试这样做。
解决方案 2:
sudo apt-get install --reinstall python-pkg-resources
在 Debian 中帮我修复了这个问题。似乎卸载一些 .deb 包(我的情况是 twisted set)破坏了 python 查找包的路径
解决方案 3:
我在尝试将 rhodecode 安装到 ubuntu 13.10 上的虚拟环境中时看到了此错误。对我来说,解决方案是运行
pip install --upgrade setuptools
pip install --upgrade distribute
在我运行easy_install rhodecode之前。
解决方案 4:
我也遇到过这种情况。我认为如果 requirements.txt 包含“distribute”条目,而虚拟环境使用 setuptools,就会出现问题。Pip 将尝试修补 setuptools 以腾出空间用于分发,但不幸的是它会在中途失败。
简单的解决方案是删除当前的虚拟环境,然后使用 --distribute 参数创建一个新的虚拟环境。
使用 virtualenvwrapper 的示例:
$ deactivate
$ rmvirtualenv yourenv
$ mkvirtualenv yourenv --distribute
$ workon yourenv
$ pip install -r requirements.txt
解决方案 5:
尝试了其中几个答案之后,然后联系了一位同事,在 Ubuntu 16.04 上对我有用的是:
pip install --force-reinstall -U setuptools
pip install --force-reinstall -U pip
就我而言,只有旧版本的 Pillow 3.1.1 出现了问题(Pillow 4.x 运行良好),现在问题已经解决了!
解决方案 6:
在 CentOS 6 中安装包 python-setuptools 解决了这个问题。
yum install python-setuptools
解决方案 7:
很多答案都推荐以下内容,但如果您阅读该脚本的源代码,您就会意识到它已被弃用。
wget https://bootstrap.pypa.io/ez_setup.py -O - | python
如果你的 pip 也坏了,这也将不起作用。
pip install setuptools
我发现我必须运行确保 pip、setuptools 和 wheel 是最新的命令,才能让 pip 再次工作。
python -m pip install --upgrade pip setuptools wheel
解决方案 8:
我之前遇到过此错误,评分最高的答案在尝试下载文件时出错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
解决方案 9:
需要多一点 sudo。然后使用 easy_install 安装 pip。成功了。
sudo wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
sudo easy_install pip
解决方案 10:
我在诗歌环境中遇到了这个错误。
我采取的解决方法:
添加 setuptools 作为开发依赖项
poetry add --dev setuptools
在 poetry 环境中安装 setuptools
poetry run pip install setuptools
解决方案 11:
如果您使用的是 python3 ,则可以使用该命令sudo apt-get install --reinstall python3-pkg-resources
,我的情况就是如此。
解决方案 12:
我通过执行以下操作修复了 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 中的该目录下
解决方案 13:
在 Windows 上,使用 Python 3.7,这对我有用:
pip install --upgrade setuptools --user
--user
在您的主目录中安装软件包,这不需要管理员权限。
解决方案 14:
我在安装最新版 Python 后遇到了这个问题3.10.4
。不知怎么的,setuptools
包和 pip 被删除了。
我使用以下命令来解决问题:在[Windows]中
py -m ensurepip --default-pip
解决方案 15:
简单的解决方法是,您可以使用 conda 来升级 setuptools 或整个环境。(特别是对于 Windows 用户。)
conda upgrade -c anaconda setuptools
如果setuptools被删除,则需要重新安装setuptools。
conda install -c anaconda setuptools
如果以上方法都不行,可以升级 conda 环境,但是不建议重新安装卸载某些包,因为这样会让情况更加严重。
解决方案 16:
对我来说,这个错误是因为我有一个叫“site”的子目录!我不知道这是否是 pip 的错误,但我开始这样做:
/some/dir/requirements.txt /some/dir/site/
pip install -r requirements.txt 不起作用,出现上述错误!
将子文件夹从“site”重命名为“src”解决了问题!也许 pip 正在寻找“site-packages”?太疯狂了。
解决方案 17:
对我来说,这原来是权限问题site-packages
。由于这只是我的开发环境,我提高了权限,一切又恢复正常了:
sudo chmod -R a+rwx /path/to/my/venv/lib/python2.7/site-packages/
解决方案 18:
当我以与创建者不同的用户身份激活虚拟环境时,我遇到了这个问题。这似乎是权限问题。当我尝试 @cwc 的答案并在输出中看到以下内容时,我发现了这一点:
Installing easy_install script to /path/env/bin
error: /path/env/bin/easy_install: Permission denied
切换回创建虚拟环境的用户,然后运行原始pip install
命令,没有任何问题。希望这能有所帮助!
解决方案 19:
我今天也遇到了这个问题。我只在虚拟环境中遇到了这个问题。
对我来说,解决方案是停用虚拟环境,删除虚拟环境,然后用 pip 卸载它,然后重新安装它。之后,我为我的项目创建了一个新的虚拟环境,然后 pip 在虚拟环境中和正常环境中都可以正常工作。
解决方案 20:
看起来他们已经离开 bitbucket 并且现在在 github 上(https://github.com/pypa/setuptools)
运行的命令是:
wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
解决方案 21:
如果您在通过conda安装的应用程序中遇到此问题,则解决方案(如本错误报告中所述)是使用以下命令安装 setup-tools:
conda install setuptools
解决方案 22:
显然您缺少 setuptools。某些虚拟环境版本默认使用分发而不是 setuptools。--setuptools
在创建虚拟环境时使用该选项或在您的环境中设置VIRTUALENV_SETUPTOOLS=1
。
解决方案 23:
发布的答案都不适合我,所以我重新安装了 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/)
解决方案 24:
在我的例子中,我最初安装了 2 个 Python 版本,后来我删除了旧版本。因此在创建虚拟环境时
virtualenv venv
指的是卸载的python
对我有用的
python3 -m virtualenv venv
当您尝试使用 pip 时,情况也是如此。
解决方案 25:
我以为“/Library/Python/2.7/site-packages/”目录是本地缓存,因此从我的机器上删除了它,从而导致了此错误(或非常类似的错误)。只有 easy_install 停止工作(pip 正常)。
这里列出的所有项目都对我没有帮助,但我能够通过从https://www.python.org/downloads/下载最新版本并安装来恢复。幸运的是,我没有使用最新版本,否则我相信我必须重新安装。
我怀疑(但不是 100% 确定)我还需要打开一个新终端(或终端中的新选项卡)才能使其工作。
解决方案 26:
当我尝试按照OSX 指南操作时,我偶然发现了这个答案。对我有用的是,在运行之后python get-pip
,我还必须运行easy_install pip
。这解决了根本无法运行 pip 的问题。我确实安装了一些旧的 macport 东西。这可能有冲突。
解决方案 27:
在 Windows 上,我安装了从www.lfd.uci.edu/~gohlke/pythonlibs/下载的 pip ,然后遇到了这个问题。
所以我应该先安装setuptools(easy_install)。
解决方案 28:
只需重新安装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
那么一切都会好起来的。
解决方案 29:
我使用 CentOS 6.7,我的 python 刚刚从 2.6.6 升级到 2.7.11,在尝试了很多不同的答案之后,最终以下一个完成了工作:
sudo yum install python-devel
希望能够帮助处于同样境况的人。
解决方案 30:
我在更新 Ubuntu 版本后遇到了这个问题。它似乎已经删除了我所有虚拟环境中的设置工具。
为了解决这个问题,我将虚拟环境重新安装到目标目录中。这清除了缺失的安装工具,并使一切再次运行。
例如:
~/RepoDir/TestProject$ virtualenv TestEnvironmentDir