【问题标题】:Upgrading setuptools on Mountain Lion following Python upgradePython 升级后在 Mountain Lion 上升级 setuptools
【发布时间】:2014-09-03 23:12:34
【问题描述】:

我正在运行安装了 Python 2.7.2 的 Mountain Lion。过去,我使用 pip install 安装了 virtualenv,一切运行良好。但是,我在运行几个包时遇到了一些问题,因此决定使用 python.org 上的 .dmg 升级 Python (2.7.8)。

安装程序在 /Library/Frameworks/Python.framework 中安装了一个 Python 版本,我运行了 Update Shell Profile.command 以使其成为默认 Python。现在,当我在终端提示符下输入“python”时,2.7.8 会启动,所以到目前为止一切都很好。

在管理员帐户中,我随后使用以下方法升级了 setuptools:

> curl https://bootstrap.pypa.io/ez_setup.py -o - | sudo python

这在 /Library/Frameworks/Python.framework/Versions/2.7/bin/easy_install 安装了 easy_install(即使用新的默认 Python 2.7.8 安装)。这似乎可以安装,但是当尝试安装 pip 时:

> sudo easy_install pip

失败,错误提示:

ImportError: cannot import name ContextualZipFile

我认为可能有一个不同版本的 easy_install 正在尝试运行,但如果我明确运行新版本的 easy_install,它会给出相同的错误消息:

有什么建议为什么会发生这种情况?一些报告表明,这可能是在 setuptools 更新期间引入的错误(但那是几次更新之前的并且应该已经修复 - 但我想它可能再次被破坏)。有没有办法安装以前的版本?

【问题讨论】:

  • 对你来说太晚了,但我推荐 Macports macports.org 或 Homebrew brew.sh 来安装多个 Python 版本(它们不会与系统路径混淆)——它们不容易出错,而且你可以在出错的情况下核对整个安装并从头开始
  • 感谢您的评论。通常我使用 Fink 来更新这些东西。我在这种情况下使用了它,但随后在使用另一个 Python 包时遇到了问题。这就是为什么我从 Python 站点选择使用 .dmg 的“官方”路线。但是,事实证明,它并没有帮助并引入了这个新问题。
  • 我将使用 Homebrew 排在第二位。它可以并且会自行清理。

标签: python pip setuptools easy-install


【解决方案1】:

您是否尝试过按照http://pip.readthedocs.org/en/latest/installing.html 安装 pip

【讨论】:

  • 这不是我的问题,我想我做不到。
  • 谢谢-为我整理了!由于遇到了其他问题,但那是另一回事了...
【解决方案2】:

我没有使用山狮。我正在使用 Mavericks (10.9.4)。

我刚刚尝试了您的步骤,没有出现同样的错误。我不想发布对评论的长回复,所以我在这里。希望这对您有所帮助。

首先,我从python.org的下载页面下载了python-2.7.8-macosx10.6.dmg

安装后,我检查了我现在使用的是这个版本的python

LongQuanJian:~ joysword$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python

LongQuanJian:~ joysword$ python
Python 2.7.8 (v2.7.8:ee879c0ffa11, Jun 29 2014, 21:07:35) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

然后我尝试运行您提供的推荐,它成功了。日志位于:

https://gist.github.com/joysword/2fe24ae34c573e205144

注意第二个推荐

sudo easy_install pip

在第 248 行。

【讨论】:

  • 非常感谢您的回复。我现在不在正确的计算机上,但我回来后会看看你发布的日志。
猜你喜欢
  • 2014-01-31
  • 2012-07-26
  • 2012-08-19
  • 2012-07-29
  • 2012-08-10
  • 2019-03-20
  • 2011-12-08
  • 2013-06-15
  • 1970-01-01
相关资源
最近更新 更多