OS X 10.8 升级后 Python pip 损坏

问题描述 投票:0回答:11

升级到 Mac OS X 10.8 (Mountain Lion),现在在尝试调用

$ pip
时出现以下错误:

Traceback (most recent call last):
  File "/usr/local/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in <module>
    working_set.require(__requires__)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
    raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: pip==1.1

更新:尝试通过再次执行安装过程来重新安装(使用http://www.pip-installer.org/en/latest/installing.html#using-the-installer

easy_install
),但没有'不起作用,遇到同样的错误。

现在尝试以下操作:调用

$ sudo pip
,上述错误消失。奇怪的是,在上面的错误消息中找不到的目录指向 /System/Library/... 而 python 安装(新的?)在 /Library/Frameworks/.. 中找到:

$ which python
/Library/Frameworks/Python.framework/Versions/Current/bin/python

知道如何摆脱 sudo 吗?

python macos pip
11个回答
135
投票

使用

easy_install
将您的
pip
更新到最新版本:

sudo easy_install -U pip

还要确保您安装了最新的

XCode
(版本 4.4)和
Command Line Tools


10
投票

这对我有用

rm -f /usr/local/bin/easy_install
brew reinstall python
pip install --upgrade setuptools
pip install --upgrade pip

5
投票

我也遇到了类似的错误,只是

sudo pip
也不起作用。我正在使用 python 的“brew”安装(符号链接到 /usr/local/bin),发现问题是 pip 和 easy_install 文件中的 shebangs 被硬编码为
#!/usr/bin/python
而不是
#!/usr/local/bin/python
,并且所以使用系统Python版本而不是Brew版本。

干杯, 汤姆


3
投票

我实际上无法按照建议去做。 我不得不执行:

xcode-select --install

然后我就可以安装 ldap 模块了。


2
投票

我在这里尝试了所有答案,从重新安装 easy_install 到安装新的 python 版本,对我来说没有任何作用。

我所做的是在 /Library/Frameworks 文件夹中安装一个新的 Python 安装,并从 /usr/local/bin 到该安装的符号链接(由于某种原因,我的系统有一个从 /Library/Frameworks/Python.framework 到/系统/框架/Python.framework)。我的想法是保留 /System/Library/Frameworks 文件以供系统命令使用在 /usr/bin 中,并让 /usr/local/bin 指向 /Library/Frameworks 中的另一个“用户空间”安装。为了做到这一点:

  • 将 /System/Library/Framework/Python.framework 重命名为 _OLD_Python.framework

  • 删除 /usr/local/bin 中的每个 python 文件(使用 sudo rm /usr/local/bin/python*)和 /usr/local/bin/pip* (但不要碰 /usr/bin)

  • 从官方网站重新安装 python (http://www.python.org/getit/) ==> 这将在 /Library/Framework 中重新安装 python,而不是 /System/Library/Framework

  • 然后启动Applications/Python/Update Shell Profile.command 命令,以确保您的路径正在使用该命令

  • 然后使用

    在 /usr/local/bin 中重新创建符号链接

    ln -s ../../Library/Frameworks/Python.framework/Versions/2.7/bin/python python

  • 最后,将 _OLD_Python.framework 重命名回 Python.framework (因为这是 /usr/bin/python 指向的路径)

输入“which python”应该指向 /Library/... 而不是 /System/Library。从那里您应该能够正确重新安装 easy_install 和 pip。


1
投票

可以简单地更改权限,而不是更改所有权:

$ sudo chmod -R o+rX /Library/Python/2.7/site.packages


1
投票

在小牛队,我发现了

ls -l `which python`
/usr/local/bin/python -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python

当点显示时

ls -l `which pip`
/usr/local/bin/pip

我重命名了旧的

pip
并创建了一个指向正确的 pip 二进制文件的符号链接,现在一切都很好。这可能不是最好的解决方案,但它确实有效。


1
投票

我通过用自制程序重新安装 python 解决了这个问题:

brew install python


0
投票

我更改了 Python 文件夹的权限(从 root 到我的用户),现在一切都对我有用:

sudo chown -R <your_user>:wheel /Library/Python/2.7/site-packages/

不建议用于具有多个用户的机器。


0
投票

我通常对一些在其

bonjour-py
中引用
requirements.txt
的项目遇到同样的问题,目前不知道是哪个或如何跟踪该项目。

有人告诉我pip-tool。实际上,这是一个很好的选择来确定您拥有哪些以及是否想要更新它们。作为奖励,它很好地忽略了

bonjour-py
错误。


0
投票

我正在运行索诺玛 14.6.1 蟒蛇版本3.9

这对我有帮助。我跑: 海湾合作委员会——版本 它给了我: Apple clang 版本 15.0.0 (clang-1500.3.9.4) 目标:arm64-apple-darwin23.6.0 线程模型:posix 安装目录:/Library/Developer/CommandLineTools/usr/bin

然后我去了: https://developer.apple.com/download/all/?q=Command%20Line%20Tools

Apple Clang 版本 15.0.0 通常与 Xcode 15 一致,因此我下载了 Xcode 15 的命令行工具并安装了它。 我已经安装了一些东西,但显然更新的 macOS 搞砸了一些东西。因此,在为 Xcode 15 重新安装 CLI 后,一切都恢复正常。 我花了2个小时来调试这个。希望它可以节省某人的时间)

© www.soinside.com 2019 - 2024. All rights reserved.