ChatGPT解决这个技术问题 Extra ChatGPT

如何在 Mac OS X 10.6.4 上卸载 Python 2.7?

我想从我的 Mac OS X 10.6.4 中完全删除 Python 2.7。我设法通过还原我的 .bash_profilePATH 变量中删除条目。但我还想删除由 Python 2.7 安装包安装的所有目录、文件、符号链接和条目。我从 http://www.python.org/ 获得了安装包。我需要删除哪些目录/文件/配置文件条目?某处有清单吗?


C
Community

不要试图删除 /System/Library 和 /usr/bin 中的任何 Apple 提供的系统 Python,因为这可能会破坏您的整个操作系统。

注意: 下面列出的步骤影响 Apple 提供的 Python 2.7;他们只删除了第三方 Python 框架,例如 python.org installers 安装的那些。

完整列表是 documented here。基本上,您需要做的就是以下几点:

删除第三方 Python 2.7 框架 sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7 删除 Python 2.7 应用程序目录 sudo rm -rf "/Applications/Python 2.7" 删除符号链接,在 /usr/ local/bin,指向这个 Python 版本。使用 ls -l /usr/local/bin | 查看它们grep '../Library/Frameworks/Python.framework/Versions/2.7'

然后运行以下命令删除所有链接:

    cd /usr/local/bin/
    ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm

如有必要,编辑您的 shell 配置文件以删除将 /Library/Frameworks/Python.framework/Versions/2.7 添加到您的 PATH 环境文件。根据您使用的 shell,可能已修改以下任何文件:~/.bash_login、~/.bash_profile、~/.cshrc、~/.profile、~/.tcshrc、~/.zshrc 和/或〜/ .zprofile。


感谢 Ned 的提醒,我确实删除了它,并发现了您必须重新安装 Mac OS X 的艰难方法。我将把它留在这里,留给其他和我有同样想法的人。不要在 /System/Library/Frameworks/... 中删除 Python,您的任何应用程序都无法运行,您必须重新安装 OS X。
Python 2.7 是最近系统上的默认系统 Python,而在 10.6.4 上它是 2.6,而 2.7 是用户安装的。不要从最近的 OS X 系统卸载 2.7。
上述步骤不会从 任何 版本的 OS X 中删除系统 Python。系统 Python 安装在 /System/Library/Frameworks(您不应修改)中,而不是 /Library/Frameworks
brew doctor 也可用于查找未使用的符号链接。
谢谢,谢谢@Martijn Pieters。我差点把我的 Mac 搞砸了。我试图安装 cx_Oracle,它默认为 python2.7,但我正在使用 Python 3.7。无需卸载 Python 2.7。只需安装 Python3.x 并使用:python3 -m pip install cx_Oracle --upgrade 而不是 python -m pip install cx_Oracle --upgrade(注意 3 表示安装 Python 3.x)。
A
AmirHd

这个有效:

cd /usr/local/bin/
ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm

描述:它列出所有链接,删除 @ 字符,然后删除它们。


我尝试了这里提供的每一个答案,这就是最终成功的答案。
a
athulpraj

创建指向最新版本的符号链接

 ln -s -f /usr/local/bin/python3.8 /usr/local/bin/python

关闭并打开一个新终端

并尝试

 python --version

非常感谢,同样的方式也适用于 pip “ln -s -f /usr/local/bin/pip3 /usr/local/bin/pip” 然后“pip --version” 如果你想升级 pip 使用这个命令“点安装——升级点”
或尝试使用 /usr/bin/ 而不是 /usr/local/bin/,具体取决于您的 OSX
非常感谢。
非常感谢,它也适用于 macOS Monterey。
C
Community

如果您使用 PKG 安装程序安装它,您可以执行以下操作:

pkgutil --pkgs

或更好:

pkgutil --pkgs | grep org.python.Python

这将输出如下内容:

org.python.Python.PythonApplications-2.7
org.python.Python.PythonDocumentation-2.7
org.python.Python.PythonFramework-2.7
org.python.Python.PythonProfileChanges-2.7
org.python.Python.PythonUnixTools-2.7

您现在可以选择要取消链接(删除)的包。

这是取消链接文档:

 --unlink package-id
             Unlinks (removes) each file referenced by package-id. WARNING: This command makes no attempt to perform reference counting or dependency analy-
             sis. It can easily remove files required by your system. It may include unexpected files due to package tainting. Use the --files command first
             to double check.

在我的示例中,您将键入

pkgutil --unlink org.python.Python.PythonApplications-2.7
pkgutil --unlink org.python.Python.PythonDocumentation-2.7
pkgutil --unlink org.python.Python.PythonFramework-2.7
pkgutil --unlink org.python.Python.PythonProfileChanges-2.7
pkgutil --unlink org.python.Python.PythonUnixTools-2.7

或在一行中:

pkgutil --pkgs | grep org.python.Python | xargs -L1 pkgutil -f --unlink

重要提示:--unlink 从 Lion 开始不再可用(截至 2014 年第一季度,包括 Lion、Mountain Lion 和 Mavericks)。如果有人按照此说明尝试将其与 lion 一起使用,则应尝试根据此帖子的内容对其进行调整:https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X


不幸的是,依赖 pkgutil 不会删除 Python 安装程序安装的所有文件,因为其中一些文件是在安装后检查脚本期间创建的,因此未注册。
a
abrahamcalf

尝试卸载 Python

brew uninstall python

不会删除本机安装的 Python,而是使用 brew 安装的版本。


我必须多次这样做才能摆脱我拥有的所有随机版本
您还可以使用 brew uninstall python@3.8 卸载特定版本
R
Roberto Manfreda

无需卸载它或使用符号链接发疯,只需使用 alias。我在升级到 python 3.7.1 时遇到了同样的问题。
只需使用 brew install python 安装新的 python 版本,然后在您的 .bash_profile 中创建一个指向新 python 版本的别名;像这样:alias python="/usr/local/bin/python3" 然后保存并运行 source ~/.bash_profile
完成。


d
davidcondrey

关于删除符号链接,我发现这很有用。

find /usr/local/bin -lname '../../../Library/Frameworks/Python.framework/Versions/2.7/*' -delete

这比在接受的答案中解析 ls 的输出要好得多
我不断从上述答案中得到“权限被拒绝”。但是这个与 sudo 配对的为我做到了。谢谢!
S
Syscall

从 python 2.7.16 升级到 python 3.9 时我遇到了同样的问题只需使用 brew install python 安装新的 python 版本或下载并安装你的操作系统然后

sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7 sudo rm -rf "/Applications/Python 2.7" ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' 然后检查 -> python --version 在你的 .bash_profile 创建一个指向新 python 版本的别名;像这样: alias python="/usr/local/bin/python3" 然后保存并运行 source ~/.bash_profile。检查-> python --version

现在一切就绪


m
minhas23

无需卸载旧的 python 版本。

只需安装新版本说python-3.3.2-macosx10.6.dmg并将python的软链接更改为新安装的python3.3

使用以下命令检查默认 python 和 python3.3 的路径

“哪个python”和“哪个python3.3”

然后删除现有的python软链接,指向python3.3


谢谢,但这并不能回答我的问题。问题不在于我是否需要卸载旧的 python 版本才能安装新版本。
这似乎是最安全的方法,因为对我来说,弄乱操作系统放在机器上的东西通常不会那么好。在 python2 shell 中遇到来自 python3 语句的语法问题后,我也“从 python.org 获取了安装包”。我的第一个想法是删除 python2 并改用 python3。但是,从之前的帖子中可以看出该行动的危险性。这对我来说是更好的解决方案,并遵循“使用链接重新路由行为”的想法。此外,python3 shell 已经安装,只需在提示符下键入“python3”而不是“python”。
@minhas23 如何删除软链接并创建一个新链接?
C
Community

Onur Güzel 在他的博文 "Uninstall Python Package from OS X 中提供了解决方案。

您应该在终端中键入以下命令:

sudo rm -rf /Library/Frameworks/Python.framework cd /usr/local/bin ls -l 。 | grep '../Library/Frameworks/Python.framework' | awk '{打印 $9}' | xargs sudo rm sudo rm -rf "/Applications/Python xy" 其中命令 xy 是安装的 Python 版本。根据你的问题,应该是2.7。

用 Onur 的话来说:

警告:此命令将删除随包安装的所有 Python 版本。系统提供的 Python 不会受到影响。

如果您从 python.org 安装了超过 1 个 Python 版本,则再次运行第四个命令,为要卸载的每个 Python 版本更改“xy”。


这解决了我的问题,我有 2.7.10 和 brew 安装了 2.7.15,当我运行“python”时,2.7.10 仍然显示不是 2.7.15,在你的帮助之后,现在一切正常,谢谢
这是我的问题的解决方案。我安装了 3.8,但不记得它是如何安装的。现在使用 brew 中的 python 干净整洁。
P
Putna

在使用 brew 安装 python3 的 MacOS 上:

sudo ln -s -f /opt/homebrew/bin/python3 /usr/local/bin/python
sudo ln -s -f /opt/homebrew/bin/pip3 /usr/local/bin/pip

重新打开终端

python --version
pip --version

这是这里最好的答案。非常简单,而且很有效!谢谢你。
n
nbro

注意:如果您使用 Homebrew 安装了 Python,那么您可以按照以下步骤操作,否则请寻找其他解决方案!

要卸载使用 Homebrew 安装的 Python 2.7.10,只需发出以下命令:

brew uninstall python

同样,如果你想卸载 Python 3(你使用 Homebrew 安装的):

brew uninstall --force python3

P
Pratik Mandrekar

这就是在 Mac OS 上对我有用的方法

从 https://www.python.org/downloads/mac-osx/ 下载最新的 Python 3.x 通过单击安装程序 ln -s -f / 时显示的安装步骤安装 Python 3.x usr/local/bin/python3.9 /usr/local/bin/python ln -s -f /usr/local/bin/pip3 /usr/local/bin/pip 打开一个新的终端窗口并验证 python --version。应该说 3.x

对于第 3 步,通过检查 which python 的输出来确认现有 python 可执行文件的路径


F
F1Linux

如果您正在考虑手动删除 Apple 的默认 Python 2.7,我建议您先挂机并注意:看起来 Apple 很快就会为您做到这一点:

Python 2.7 在 OSX 10.15 Catalina 中已弃用

Catalina 不推荐使用 Python 2.7 以及 Ruby 和 Perl:(跳至“脚本语言运行时”>“弃用”部分)

https://developer.apple.com/documentation/macos_release_notes/macos_catalina_10_15_release_notes

Apple 将在 OSX 10.16 中删除 Python 2.7

事实上,根据 Mac Observer 的说法,如果你什么都不做,到 OSX 10.16 版,Python 2.7 将从你的系统中消失:

https://www.macobserver.com/analysis/macos-catalina-deprecates-unix-scripting-languages/

鉴于这一启示,我建议最好的做法是什么都不做,等待苹果为你抹去。由于 Apple 即将为您删除它,因此冒着修补 Python 环境的风险似乎不值得。

注意:我看到这个问题与 OSX v 10.6.4 相关,但似乎这个问题已经成为所有有兴趣从系统中删除 Python 2.7 的 OSX 人员的关键点,无论他们运行的是什么版本。


10.14.6 我不认为它仍然被删除,
好像不会有10.16,而是直接11.0(大苏尔)。我们还在等!
c
chrisurf

尝试删除某些 python 库时要小心,Mac OS 需要 python!不要删除以下文件夹中的任何 Python 版本:

/usr/bin
system/Library

这些 Python 2.7 版本由 Apple 安装并由 Mac OS 和其他软件使用。从这些目录中删除 Python 可能会破坏您的系统。


k
kamal

在这里,您将看到所有预装的 python 版本,包括 2.3、2.4 甚至 2.7。

/System/Library/Frameworks/Python.framework/Versions

但是,即使使用 sudo 我不这么认为,您也可以删除它们。您将收到一个错误 - Operation not permitted