我想从Mac OS X 10.6.4中完全删除Python 2.7。我设法PATH
通过还原删除了变量中的条目.bash_profile
。但我也想删除所有由python 2.7安装包安装的目录,文件,符号链接和条目。我从http://www.python.org/获得了安装包。我需要删除哪些目录/文件/配置文件条目?某处有清单吗?
我想从Mac OS X 10.6.4中完全删除Python 2.7。我设法PATH
通过还原删除了变量中的条目.bash_profile
。但我也想删除所有由python 2.7安装包安装的目录,文件,符号链接和条目。我从http://www.python.org/获得了安装包。我需要删除哪些目录/文件/配置文件条目?某处有清单吗?
Answers:
/System/Library
和/usr/bin
,因为这可能会破坏你的整个操作系统。注意: 以下列出的步骤不会影响Apple提供的系统Python 2.7;请参阅附录A。他们只会删除第三方Python框架,例如python.org安装程序安装的框架。
完整列表在此处记录。基本上,您需要做的是:
删除第三方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
如有必要,请编辑您的外壳配置文件,以删除添加/Library/Frameworks/Python.framework/Versions/2.7
到您的PATH
环境文件中的操作。根据您所使用的shell,任何下列文件可能已被修改:
~/.bash_login
,~/.bash_profile
,~/.cshrc
,~/.profile
,~/.tcshrc
,和/或~/.zprofile
。
/System/Library/Frameworks
其中的(您永远都不要修改),而不是/Library/Frameworks
。
brew doctor
也可以用来查找未使用的符号链接。
这个作品:
cd /usr/local/bin/
ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm
描述:列出所有链接,删除@
字符,然后删除它们。
如果使用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)不再可用。如果涉及此说明的任何人都尝试将其与狮子一起使用,则应尝试改编本文所讲的内容:https : //wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X
pkgutil
不会删除Python安装程序安装的所有文件,因为其中一些是在安装postflight脚本期间创建的,因此未注册。
创建符号链接到最新版本
ln -s -f /usr/local/bin/python3.8 /usr/local/bin/python
关闭并打开一个新终端
并尝试
python --version
无需卸载旧的python版本。
只需安装新版本,说python-3.3.2-macosx10.6.dmg并将python的软链接更改为新安装的python3.3
使用以下命令检查默认python和python3.3的路径
“哪个python”和“哪个python3.3”
然后删除python的现有软链接并将其指向python3.3
OnurGüzel在他的博客文章“从OS X卸载Python包”中提供了解决方案。
您应该在终端中键入以下命令:
sudo rm -rf /Library/Frameworks/Python.framework
cd /usr/local/bin
ls -l . | grep '../Library/Frameworks/Python.framework' | awk '{print $9}' | xargs sudo rm
sudo rm -rf "/Applications/Python x.y"
其中命令xy是安装的Python版本。根据您的问题,应该是2.7。
用Onur的话来说:
警告:此命令将删除与软件包一起安装的所有Python版本。系统提供的Python不会受到影响。
如果您从python.org安装了多个Python版本,请再次运行第四个命令,为每个要卸载的Python版本更改“ xy”。
无需卸载它或使用符号链接发疯,只需使用即可alias
。升级到python 3.7.1时,我遇到了同样的问题。
只需使用安装新的python版本,brew install python
然后在.bash_profile
创建的别名中指向新的python版本即可;这样:alias python="/usr/local/bin/python3"
然后保存并运行source ~/.bash_profile
。
做完了
如果您正在考虑手动删除Apple的默认Python 2.7,建议您立即执行以下操作:看起来Apple很快会为您完成此操作:
Catalina中不推荐使用Python 2.7-以及Ruby和Perl :(跳至“ 脚本语言运行时 ”>“ 不推荐使用 ”部分)
https://developer.apple.com/documentation/macos_release_notes/macos_catalina_10_15_release_notes
确实,如果您什么都不做,那么根据OS X版本10.16 的Mac Observer所述,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人士,无论他们运行的是哪个版本,该问题似乎都已成为一个关键点。