【问题标题】:Too many pythons on my Mac OS X Mountain Lion我的 Mac OS X Mountain Lion 上有太多的蟒蛇
【发布时间】:2012-11-19 05:41:03
【问题描述】:

我不久前更新到 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

我很想删除所有这些并清理所有内容,并且我更喜欢将所有路径设置为 Mountain Lion 附带的 system 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 中?
  • 安装 ython 的东西有什么麻烦 - 升级操作系统时可能会添加 Apple 安装的所有东西
  • 请记住,您可能不应该删除随 OS X 一起安装的 Python 版本(因为它可能被包括在内,因为它被 OS X 使用)。
  • 是的,这是我的主要问题:我不想删除 OS X 附带的 Python 版本。我只是在上 Python 课时安装了其他版本在学校。马克,我不知道它们是否是苹果安装的。这也是一个问题。而且,我不知道如何找出我的路径设置在哪里,也不知道如何找出(脸颊因羞愧而变红)。
  • @user1864671:/System 中的任何内容都是 Apple 安装的。

标签: python osx-mountain-lion


【解决方案1】:

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

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

那是 4。符号链接 Current -> 2.7 不是另一个版本,它又是同一个版本。这 4 个都随您的系统一起提供,并且可能被系统中的工具使用。您永远不应该摆脱它们,或者 /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.frameworkrm 出现的所有问题。 (您可以自动执行此操作,但最好准确查看您要删除的内容。)

您可能还想找出在您的 PATH 中添加额外内容的原因。可能需要查看的地方是 ~/.bash_profile(python.org 安装程序在其中执行此操作),类似的文件,如 ~/.bashrc~/.profile(其他人可能告诉您放置它),可能还有 /etc/paths/etc/paths.d (您可能已将其放置在 GUI 应用程序中)。

【讨论】:

  • 我有一个问题...我想从我的路径中删除多余的东西。不过,我不确定什么应该真正留在我的 PATH 中,以及如何将我不需要的东西取出来。另外,在 ~/.bash_profile 和其他地方如何看?
  • ~/.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 行这样的行。
  • 最后一件事:如果您对这类东西不太了解,您应该在更改隐藏文件之前备份它们,或者注释掉行(只需在前面添加#第一个字符)而不是删除它们,所以如果你破坏了任何东西,你可以稍后再回来。
猜你喜欢
  • 2013-02-12
  • 1970-01-01
  • 2012-10-13
  • 2013-09-05
  • 1970-01-01
  • 2012-11-15
  • 2012-09-15
  • 2013-09-24
  • 1970-01-01
相关资源
最近更新 更多