Easy_install 和 pip 坏了:pkg_resources.DistributionNotFound:distribute==0.6.36
Posted
技术标签:
【中文标题】Easy_install 和 pip 坏了:pkg_resources.DistributionNotFound:distribute==0.6.36【英文标题】:Easy_install and pip broke: pkg_resources.DistributionNotFound: distribute==0.6.36 【发布时间】:2013-10-24 09:18:15 【问题描述】:我曾尝试在 OSX 上使用 pip install --upgrade pip
升级 pip,但 pip 和 easy_install 都不起作用。
运行 pip 时
Traceback (most recent call last):
File "/usr/local/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/local/Cellar/python/2.7.4/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.49-py2.7.egg/pkg_resources.py", line 2881, in <module>
parse_requirements(__requires__), Environment()
File "/usr/local/Cellar/python/2.7.4/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.49-py2.7.egg/pkg_resources.py", line 596, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pip==1.3.1
运行 easy_install 时
File "/usr/local/bin/easy_install", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/local/Cellar/python/2.7.4/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.49-py2.7.egg/pkg_resources.py", line 2881, in <module>
parse_requirements(__requires__), Environment()
File "/usr/local/Cellar/python/2.7.4/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.49-py2.7.egg/pkg_resources.py", line 596, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: distribute==0.6.36
我该如何解决这个问题?
更新 我找到了解决方案。
我做了cd /usr/local/lib/python2.7/site-packages && ls
在目录中找到pip-1.4.1-py2.7.egg-info
和distribute-0.6.49-py2.7.egg
。
然后以下步骤解决了这个问题。
将/usr/local/bin/pip
中的pip版本更改为1.4.1
在/usr/local/bin/easy_install
中将分发版本更改为0.6.49
curl ez_setup.py 并从中安装 setuptools 的其他此类问题的答案不起作用。它给出了以下错误。
Downloading https://pypi.python.org/packages/source/s/setuptools/setuptools-1.1.6.tar.gz
Traceback (most recent call last):
File "<stdin>", line 370, in <module>
File "<stdin>", line 366, in main
File "<stdin>", line 278, in download_setuptools
File "<stdin>", line 185, in download_file_curl
File "/usr/local/Cellar/python/2.7.4/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 542, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['curl', 'https://pypi.python.org/packages/source/s/setuptools/setuptools-1.1.6.tar.gz', '--silent', '--output', '/usr/bin/setuptools-1.1.6.tar.gz']' returned non-zero exit status 23
【问题讨论】:
感谢修复,我认为 /usr/bin/pip 文件中有 1.4 就足够了...不,它必须是 1.4.1。 【参考方案1】:什么操作系统?
无论如何你应该尝试这样做:
sudo easy_install -U distribute
也许这也有帮助,安装easy_install-2.7:
wget --no-check-certificate http://pypi.python.org/packages/source/d/distribute/distribute-0.6.35.tar.gz
tar xf distribute-0.6.35.tar.gz
cd distribute-0.6.35
python2.7 setup.py install
也许您需要强制更新,或重新安装 easy_install,因为这似乎是您的问题。
【讨论】:
对我有用的是通过 easy_install 在 /usr/bin 而不是 /usr/local/bin 重新安装分发包:sudo /usr/bin/easy_install -U distribute
=distribute= 现已弃用 - 它是 =setuptools= 的一个分支。【参考方案2】:
安装分发包如下:
$ wget https://svn.apache.org/repos/asf/oodt/tools/oodtsite.publisher/trunk/distribute_setup.py
$ python distribute_setup.py
然后您将拥有一个有效的easy_install
。
快乐编码。
【讨论】:
这有助于解决另一个 pkg_resources.DistributionNotFound 问题。非常感谢!!为什么这是解决方案?什么是分发? 我在升级到 OS X Mavericks 后也遇到了同样的问题。我发现我需要通过 sudo 运行python distribute_setup.py
升级到 OS X Mavericks 后遇到了同样的问题;但这个修复对我不起作用。
此脚本网页不可用。
在 50,000 个其他答案从未解决我的问题之后,您解决了困扰我数月的问题。如果我能把我所有的 SO 积分都给你……我不会的。但我至少会给你 10 个左右。【参考方案3】:
如果你这样做,那么它会起作用:
cd /usr/local/lib/python2.7/site-packages && ls
在目录中找到pip-1.4.1-py2.7.egg-info
和distribute-0.6.49-py2.7.egg
。
然后以下步骤解决了这个问题:
在/usr/local/bin/pip
中将 pip 版本更改为 1.4.1
在/usr/local/bin/easy_install
中将分发版本更改为 0.6.49
【讨论】:
如果找不到怎么办? 如何“更改”已安装的鸡蛋/二进制文件的版本? 我同意@Demis - 任何涉及手动编辑分发文件中的版本号的解决方案都非常可疑。【参考方案4】:其他答案都不适合我。 these instructions 更简单。我在 /usr/local/bin/easy_install 和 /usr/local/bin/easy_install-2.7 安装了一个额外的 easy_install 副本。我很确定我是按照这里和其他地方的说明这样做的。我的解决方案是删除这两个实例:
rm /usr/local/bin/easy_install
rm /usr/local/bin/easy_install-2.7
然后用
重新安装 pipsudo easy_install --upgrade pip
一些背景知识:我必须重新安装 OSX 后才到这一点。
【讨论】:
删除easy_install
后如何运行?
@xPino 因为被删除的不是系统使用的,只是妨碍了。按照我的答案中的链接了解更多信息。
@xPino 哎呀,糟透了。抱歉,它不适合你。如果这个 SO 问题有任何迹象,那么一个人如何以多种方式结束这种情况。我想你和我以不同的方式来到这里。如果我处于你的位置,我会尝试按照指示完全重新安装 setuptools。
实际上只是运行命令sudo easy_install --upgrade pip
为我解决了这个问题!
小心从 /usr/local/bin 中删除这些命令 - 它们可能是通过在 virtualenv 中安装的东西放在那里的,你以后才会意识到这一点!【参考方案5】:
再次在这里指出,让解决方案更加明显!
只需运行命令sudo easy_install --upgrade pip
就为我解决了这个问题!
【讨论】:
【参考方案6】:似乎 pip 是参考新版本的 python 安装的,而您的活动 python 可执行文件仍然是旧的。 如果您想保留 旧 版本的 python,这非常简单:使用旧版本重新安装 pip。
-
获取从https://pip.pypa.io/en/stable/installing/ 链接的
get-pip.py
文件
使用旧版本的 python 可执行文件(我假设它应该是 python
命令),运行脚本。
如果您正在寻找捷径:cd /tmp/ && wget https://bootstrap.pypa.io/get-pip.py && sudo python get-pip.py
脚本删除旧版本的 pip 并正确安装新的可执行文件,链接到旧 python 的可执行环境。
【讨论】:
【参考方案7】:我正在从 OSX 系统 python 迁移到 homebrew python,并且遇到了同样的错误。
升级自制 python 版本(运行brew upgrade python
)对我来说是这样的。
【讨论】:
【参考方案8】:解决distributeNotFound错误的一种方法是下载具有精确版本的python模块。解压它,转到文件夹并安装它“python setup.py install”。然后,可能会升级到最新版本。
我遇到了错误“pkg_resources.DistributionNotFound: The 'setuptools==19.4' distribution was not found and is required by the application'。 当 v 36.2.7 已经发布时,我下载了 setuptools v 19.4。我安装了 v 19.4,然后使用命令“easy_install --upgrade setuptools”进行了升级。 此后一切都像魅力一样。
【讨论】:
以上是关于Easy_install 和 pip 坏了:pkg_resources.DistributionNotFound:distribute==0.6.36的主要内容,如果未能解决你的问题,请参考以下文章