我正在将django应用程序部署到dev服务器,并在运行pip install -r requirements.txt时遇到此错误:
1 2 3 4
| 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站点包上:
1
| 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不在这条路上的想法吗?
- 安装NLTK时,也会出现同样的问题。好的问题和有用的答案
- 我在10号窗口的Python上工作。
- @瑞安也在Ubuntu 16.04为我工作,谢谢你的好意,先生!
2018年7月更新
大多数人现在应该使用pip install setuptools(可能与sudo)。
有些可能需要(重新)通过包管理器(apt-get install、yum install等)安装python-setuptools包。
这个问题可能高度依赖于您的操作系统和开发人员环境。如果上述问题对您不起作用,请参阅下面的传统/其他答案。
解释
此错误消息是由缺少/损坏的python setuptools包引起的。根据Matt M.的评论和安装工具问题581,下面提到的引导脚本不再是推荐的安装方法。
引导脚本指令将保留在下面,以防对任何人仍然有帮助。
遗留答案
我今天在尝试使用pip时遇到了同样的ImportError。不知怎么地,我的Python环境中删除了setuptools包。
要解决此问题,请运行setuptools的安装脚本:
1
| wget https://bootstrap.pypa.io/ez_setup.py -O - | python |
(或者,如果您没有安装wget(例如,OS X),请尝试
1
| curl https://bootstrap.pypa.io/ez_setup.py | python |
可能是预先准备好的sudo。
如果您有任何版本的distribute或任何版本的setuptools低于0.6,则必须先卸载它。*
有关详细信息,请参阅安装说明。
*如果您已经有了一个可用的distribute,那么升级到"兼容性包装器",将您切换到setuptools就更容易了。但如果东西已经坏了,不要尝试。
- 在阅读了这个评论之后,我意识到我正在使用PIP,同时在后台更新我的系统包(包括几个Python分发包)。结果是个坏主意…
- 向地方司令部吹笛总是让我害怕,但这很管用。:)我通过YMMV运行了sudo python。
- @nikreiman我运行了bin/python,所以它可以安装在我的virtualenv中。工作很棒!
- +一条完美的曲线,一条直线,解决了我的问题100%
- 在cygwin下,我必须安装python安装工具包。这使得易于安装再次工作,这遭受了同样的问题。然后我用easy_install pip让pip重新工作。我的问题来自于Cygwin在我背后将python从2.6升级到2.7,同时安装了一些无关的东西。
- +1为我保存了重新安装。我按照更新后的brew doctor建议清空/usr/local/share/python/,毫不犹豫地将其扩展到删除easy_install。这条卷曲的衬里把一切都修好了。
- 这是去年最好的答案……但截至2013年年中,distribute已过时,setuptools是其继任者。我将编辑答案以更新它,但我不确定这是处理它的最佳方法,因此有人可能会还原编辑,在这种情况下:请转到此处。
- 这对我不起作用。
- 这个网址对我不起作用,但它的确起作用:peak.telecommunity.com/dist/ez_setup.py
- @赛琳:如果你说你试过的时候发生了什么,对每个人都会更有帮助。如@nik所述,您使用过sudo吗?
- 我在Mac上运行xattr时遇到了这个错误。它使用了系统python(我安装了python)。所以对我来说,指挥权是curl https://bootstrap.pypa.io/ez_setup.py | sudo /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python。
- 谢谢,@stevepitchers,sudo yum reinstall python-setuptools帮我解决了这个问题(不需要卷管)。首先通过pip点击问题更新。
- 看起来BitBucket回购已经转移到GitHub。新命令将是wget raw.githubusercontent.com/pypa/setuptools/bootstrap/ez_setup&zwnj;&8203;.py-o-python
- 太棒了,谢谢!附:在我的情况下,问题出在pip3上,所以我不得不和python3一起跑。
- 即使使用sudo,我也会得到以下错误:error: [Errno 13] Permission denied: '/Users//anaconda/lib/python3.5/site-packages/easy-install.pth'
- 此方法已弃用。
- distribute link is broken pythonhosted.org/setuptools/merge-faq.html
- ez_setup.py已弃用
- 我必须运行wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python3.6
- ez_setup.py is deprecated and when using it setuptools will be pinned to 33.1.1 since it's the last version that supports setuptools self upgrade/installation, check https://github.com/pypa/setuptools/issues/581 for more info; use pip to install setuptools—此答案中命令输出的一部分
- 安装安装安装工具后,此问题已解决。
- apt-get install --reinstall python-setuptools 适用于Ubuntu14.04服务器。
- 我有一个类似的问题,除了进口引起了下面的错误AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader',我用pip install --upgrade --force-reinstall setuptools解决了它。
1
| sudo apt-get install --reinstall python-pkg-resources |
在Debian帮我修的。似乎卸载了一些.deb包(在我的例子中是Twisted集)已经破坏了python用来查找包的路径。
- 伟大的!它还解决了Ubuntu中的这个问题
- 不适合我,同样的错误
- 我使用的是python3,所以我必须运行sudo-apt-get-install——重新安装python3-pkg资源,并修复了它。谢谢您!
我在尝试将Rhodecode安装到Ubuntu13.10上的virtualenv时看到了这个错误。对我来说,解决办法是运行
1 2
| pip install --upgrade setuptools
pip install --upgrade distribute |
在我运行之前,轻松安装Rhodecode。
- 只有埃多克斯一个人为我做了这个把戏。
- 我需要EDOCX1[1]
- 我不能运行pip install --upgrade setuptools,因为同一个错误:No module named pkg_resources。
- 与@mclawrence相同。错误相同:(
- 在使用python3的venv模块时,pip install --upgrade distribute完成了这项工作。python 2的virtualenv支持--distribute标志,但必须在venv创建的环境中安装distribute。
这也发生在我身上。我认为,如果requirements.txt包含"distribute"条目,而virtualenv使用setuptools,问题就会发生。PIP将尝试修补安装工具以留出分发空间,但不幸的是,它将失败一半。
简单的解决方案是删除当前的virtualenv,然后用--distribute参数生成一个新的virtualenv。
使用virtualenvwrapper的示例:
1 2 3 4 5
| $ deactivate
$ rmvirtualenv yourenv
$ mkvirtualenv yourenv --distribute
$ workon yourenv
$ pip install -r requirements.txt |
- 当其他解决方案都没有的时候(使用Ubuntu 16.04),这帮助了我。
- 对于由python 3的venv模块创建的环境,激活环境后运行pip install -U distribute将完成这项工作。
在Centos6安装包python安装工具修复了它。
1
| yum install python-setuptools |
- 如果用"sudo-apt-get"替换"yum",这在Debian中有效。另:sudo apt-get install python3-setuptools。
- 这是为我做的。
- 我在Centos7上遇到了这个问题,并且已经安装了python安装工具,但是sudo yum reinstall python-setuptools修复了它。
- 是否向centos.org bugs.centos.org/view.php报告了该错误?ID=14042
- 上游Redhat bug报告bugzilla.redhat.com/show_bug.cgi?ID=1426753
我以前有过这个错误,在下载ez_setup.py文件时,最高级别的回答给了我一个错误。我找到了另一个源,这样您就可以运行命令:
1
| curl http://peak.telecommunity.com/dist/ez_setup.py | python |
我发现我还必须使用sudo使其工作,因此您可能需要运行:
1
| sudo curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python |
我还创建了另一个可以下载脚本的位置:
https://gist.github.com/ajtricards/42e73562a89edb1039f3
- "curl"命令不需要sudo,所以可能是:curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python
- 这个答案为我增加了"sudo python",因为仅"python"不起作用!谢谢
需要一点肥皂水。然后使用易于安装来安装PIP。作品。
1 2
| sudo wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
sudo easy_install pip |
- 在virtualenv中不需要sudo。
- 是的,我也有同样的问题,没有virtualenv。
在尝试了其中的几个答案后,又联系了一位同事,在Ubuntu 16.04上为我工作的是:
1 2
| pip install --force-reinstall -U setuptools
pip install --force-reinstall -U pip |
在我的例子中,只有旧版本的枕头3.1.1出现问题(枕头4.x工作正常),现在解决了!
我通过执行以下操作修复了virtualenv的错误:
已从复制pkg_resources.py
/Library/Python/2.7/site-packages/setuptools
到
/Library/Python/2.7/site-packages/
这可能是一个廉价的解决方法,但对我有用。
.
如果安装工具不存在,您可以通过键入virtualenv --system-site-packages /DESTINATION DIRECTORY,将最后一部分更改为要安装到的目录来尝试安装系统站点包。pkg_rousources.py将在lib/python2.7/site-packages中的目录下。
- 是的,在某些项目中,这个解决方案是最好的(对我来说)
对我来说,这个错误是因为我有一个子目录"site"!我不知道这是不是一个pip错误,但我从以下开始:
/部分/dir/requirements.txt/DI/DR/站点/
pip install-r requirements.txt不起作用,这是上面的错误!
将子文件夹从"site"重命名为"src"解决了问题!也许PIP正在寻找"站点包"?疯子。
看起来他们已经离开BitBucket,现在在GitHub上(https://github.com/pypa/setuptools)
要运行的命令是:
1
| wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python |
- 文件"/python/python-3.5.1/lib/urlib/request.py",第162行,在url open返回opener.open(url,data,timeout)文件"/python/python-3.5.1/lib/urlib/request.py",第465行,在open文件中"/python/python-3.5.1/lib/urlib/request.py",第488行,在"unknown'u open',req)文件中"/python/python-3.5.1/lib/urlib/request.py",第443行,in _call_chain result=func(*args)file"/python/python-3.5.1/lib/url lib/request.py",第1310行,位于未知的"open raise url error('unknown url type:%s'%type)url lib.error.url error:
我今天也遇到了这个问题。我只在虚拟环境中发现了这个问题。
我的解决方案是停用虚拟env,删除然后用pip卸载virtual env并重新安装它。在这之后,我为我的项目创建了一个新的虚拟环境,然后PIP在虚拟环境中和在正常环境中一样工作得很好。
对我来说,这是site-packages上的权限问题。因为它只是我的开发环境,所以我提高了权限,一切都重新工作了:
1
| sudo chmod -R a+rwx /path/to/my/venv/lib/python2.7/site-packages/ |
如果您在通过Conda安装的应用程序中遇到此问题,那么解决方案(如此Bug报告中所述)就是简单地安装安装工具:
1
| conda install setuptools |
当我将virtualenv作为一个与创建它的用户不同的用户激活时,我遇到了这个问题。这似乎是一个许可问题。我在@cwc尝试答案时发现了这一点,并在输出中看到了这一点:
1 2
| Installing easy_install script to /path/env/bin
error: /path/env/bin/easy_install: Permission denied |
切换回创建virtualenv的用户,然后运行最初的pip install命令没有问题。希望这有帮助!
很明显你没有安装工具。默认情况下,某些virtualenv版本使用distribute而不是setuptools。创建virtualenv时使用--setuptools选项,或在您的环境中设置VIRTUALENV_SETUPTOOLS=1。
当我试图遵循OSX的指南时,我发现了这个答案。对我起作用的是,在运行python get-pip之后,我还必须运行easy_install pip。这解决了根本无法运行PIP的问题。我确实安装了一堆旧的MacPort设备。这可能有矛盾。
在Windows上,我安装了从www.lfd.uci.edu/~gohlke/pythonlibs/下载的pip,然后遇到了这个问题。
所以我应该先安装安装工具(易于安装)。
只需通过以下方式重新安装setuptools:
1 2 3 4 5 6
| $ 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 |
那么一切都会好起来的。
没有一个张贴的答案对我有用,所以我重新安装了PIP,它工作了!
1 2 3 4 5
| 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/)
- 回溯(最近调用的最后一个):file"/usr/bin/easy-install",line 5,infrom pkg_resources import load_entry_point importerror:no module named'pkg_resources'
- owner-dimension-3000 owner_sudo easy_install pip traceback(most recent call last):file"/usr/bin/easy_install",line 5,infrom pkg_resources import load_entry_point importerror:no module named"pkg_resources"owner-dimension-3000 owner_pip install--升级设置工具traceback(most recent call last):file"/usr/bin/pip",第5行,infrom pkg_resources import load_entry_point importerror:没有名为'pkg_resources'owner-dimension-3000 owner的模块#
- 您是否首先删除了已安装的PIP版本?
在我的例子中,我最初安装了两个Python版本,后来删除了旧版本。因此,在创建虚拟环境时
正在引用卸载的python
什么对我有用
1
| python3 -m virtualenv venv |
当你尝试使用pip时也是如此。
在更新了我的Ubuntu版本之后,我遇到了这个问题。在我所有的虚拟环境中,它似乎已经经历并删除了设置工具。
为了解决这个问题,我将虚拟环境重新安装到目标目录中。这清除了丢失的安装工具,并使事情再次运行。
例如。:
1
| ~/RepoDir/TestProject$ virtualenv TestEnvironmentDir |
对我来说,一个很好的解决办法是使用--no-download选项来虚拟环境(VIRTUALENV_NO_DOWNLOAD=1 tox选项来进行毒性测试)。
在OpenSUSE 42.1上,以下内容修复了此问题:
1
| zypper in python-Pygments |
importerror:没有名为pkg_resources的模块:解决方案是使用下面的命令重新安装python pip。
步骤:1登录根用户。
步骤:2卸载python pip包(如果存在)。
1
| apt-get purge -y python-pip |
步骤:3使用wget命令下载文件(pwd中的文件下载)
1
| wget https://bootstrap.pypa.io/get-pip.py |
步骤:4运行python文件。
步骤:5最终退出安装命令。
1
| apt-get install python-pip |
注意:用户必须是根用户。
我在谷歌应用引擎环境中遇到了这个错误。pip install -t lib setuptools解决了这个问题。
如果您使用的是python3,那么应该使用pip3而不是pip。命令看起来像$ pip3 install requirements.txt。
当我使用易于安装的PIP for python 2.7.14时,也遇到了同样的问题。对我来说,解决方案是(也许不是最好的,但对我来说是最有效的,这可能是最简单的),包含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文件以导入它可能是更好的解决方案。
yum -y install python-setuptools
我配置了CEPH,执行命令"$ ceph-deploy new node1"有问题,我执行命令"$ yum -y install python-setuptools",那么问题就解决了,谢谢
在Windows上,使用python 3.7,这对我很有用:
1
| pip install --upgrade setuptools --user |
--user在您的主目录中安装软件包,这不需要管理员权限。
我使用的是CentOS 6.7,而我的python刚刚从2.6.6升级到2.7.11,在尝试了这么多不同的答案之后,终于有了下面的一个:
1
| sudo yum install python-devel |
希望能帮助同样情况的人。