我的Mac OS X Mountain Lion上有太多的Python版本。

3

我不久前升级到Mountain Lion系统,之前使用过Python,现在我的电脑上安装了8个(是的,8个)版本的Python。

$ ls -l /System/Library/Frameworks/Python.framework/Versions/
total 8
drwxr-xr-x   6 root  wheel  204 Jun 20 16:23 2.3
drwxr-xr-x  11 root  wheel  374 Aug 22 13:32 2.5
drwxr-xr-x  11 root  wheel  374 Aug 22 13:32 2.6
drwxr-xr-x  11 root  wheel  374 Aug 22 13:32 2.7
lrwxr-xr-x   1 root  wheel    3 Jul 29 17:41 Current -> 2.7

我希望能够清除所有Python版本并将所有路径设置为Mountain Lion自带的系统Python。我的目标是简单和整洁。我已经尝试了将近六个月,有许多网上的“解决方案”和脚本可用于解决此问题,但它们都不完全有效或甚至难以理解。 有人可以告诉我如何从我的Mac中删除这些不需要的Python版本,或者至少如何设置我的Mac,使所有内容都可以很好地进入Mac系统版本的Python。 我没有太多旧的Python文件需要使用,但我注意到我在安装Python程序和运行.py脚本时遇到麻烦,因为路径都混乱了或出现了某种问题。

此外,我收到了以下信息:

$ echo $PATH
/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/texbin:/usr/local/mysql/bin

...看起来有点吓人。

感谢您的帮助。我熟悉UNIX shell脚本编程,并对系统管理员工作有中级的了解,但不是很高级。我是R语言程序员,所以我知道如何编程等等。非常感谢任何建议!


你的路径设置在哪里?是在/.bashrc还是/.bash_profile中? - mmmmmm
安装Python相关软件时遇到的问题 - 所有已安装的可能都是在升级操作系统时添加的苹果自带安装包。 - mmmmmm
1
请记住,您可能不应删除与 OS X 预装版本的 Python(因为它很可能是包含在内,因为 OS X 使用它)。 - Nathan
是的,那是我的主要问题:我不想删除随 OS X 自带的 Python 版本。我只是在上学期间安装了其他版本的 Python。Mark,我不知道它们是否是 Apple 安装的。这也是一个问题。而且,我也不知道如何找到我的路径设置在哪里,也不知道如何找出来(脸颊因羞愧而变红)。 - mthuspek
@user1864671:/System 目录下的所有内容都是由苹果安装的。 - abarnert
1个回答

3

实际上你只有5个版本,不是8个,也不是7个。其中4个版本是操作系统的一部分,不应该被删除。所以你只多余了1个版本。

ls -l /System/Library/Frameworks/Python.framework/Versions/
total 8
drwxr-xr-x   6 root  wheel  204 Jun 20 16:23 2.3
drwxr-xr-x  11 root  wheel  374 Aug 22 13:32 2.5
drwxr-xr-x  11 root  wheel  374 Aug 22 13:32 2.6
drwxr-xr-x  11 root  wheel  374 Aug 22 13:32 2.7
lrwxr-xr-x   1 root  wheel    3 Jul 29 17:41 Current -> 2.7

这是第四点。符号链接Current -> 2.7并不是另一个版本,它是同一个版本。这四个版本都随系统一起提供,并且可以被系统中的工具使用。您不应该删除它们或者/System目录中的任何其他文件(或启动它们的/usr/bin快捷方式)。
同时,您的路径中有以下内容:
/Library/Frameworks/Python.framework/Versions/Current/bin:
/Library/Frameworks/Python.framework/Versions/2.7/bin
/Library/Frameworks/Python.framework/Versions/Current/bin

那只是同一个版本的三个副本,很可能是从python.org官方下载的Python 2.7。我猜你曾经运行过旧版本的安装程序,然后再次运行了更新的安装程序。
但这并不重要(除非它们是通过Homebrew安装的,这种情况下只需执行brew unlink python即可完成)。您可以按照python.org的卸载说明来卸载它,然后您将只有最小的4个版本。
经过简单检查,我找不到以前包含python.org简单卸载说明的页面,但基本上就是这样:
rm -rf /Library/Frameworks/Python.framework

你可以执行 ls -l /usr/local/bin | grep Python.framework 命令,然后使用 rm 命令删除所有列出来的内容。 (你也可以自动化这个过程,但最好看清楚你要删除的内容)。

你可能还想找到是什么添加了额外的路径。可能需要查看的地方包括 ~/.bash_profile(python.org 安装程序会在这里添加),类似的文件如 ~/.bashrc~/.profile(其他人可能告诉你将其放在这里),以及可能是 /etc/paths/etc/paths.d(你可能已经将其放在这里以使其与GUI应用程序一起工作)。


我有一个问题...我想从我的路径中删除额外的东西。但我不确定实际上应该留下什么在我的PATH中,以及如何将我不需要的东西移除。此外,如何查看~/.bash_profile和其他位置? - mthuspek
~/.bash_profile 只是一个文本文件。唯一的诀窍是它以 . 开头,这意味着你在 Finder 或 GUI 打开对话框中看不到它,除非你告诉它们显示隐藏文件。但是从终端,你可以使用 less ~/.bash_profile 命令查看它,或者使用 open -a TextEdit ~/.bash_profile 命令在 TextEdit 中打开它等等。如果你看到像 export PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH} 这样的行,那就是问题所在。听起来你应该在某个地方有 3 行这样的命令。 - abarnert
最后一件事:如果你对这种东西不太了解,你应该在更改它们之前备份隐藏文件,或者注释掉行(只需在第一个字符前添加#),而不是删除它们,这样如果你弄坏了什么,你可以随时回来。 - abarnert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接