如果你安装了多个版本的 python(我目前有默认的 2.5,安装了 3.0.1,现在安装了 2.6.2),它会自动把东西放在 /usr/local
中。 , 它还调整路径以包含 /Library/Frameworks/Python/Versions/theVersion/bin
,但是当 /usr/local
时有什么意义呢?已经在 PATH 上,并且所有已安装的版本(默认的 2.5 除外,它在 /usr/bin
中)都在那里?我在 .bash_profile
中从我的 PATH 中删除了 python 框架路径, 我仍然可以输入 "python -V" => "Python 2.5.1"
, "python2.6 -V" => "Python 2.6.2"
, "python3 -V" => "Python 3.0.1"
.只是想知道为什么它把它放在 /usr/local
中, 并且还更改了 PATH。我做的很好吗?谢谢。
此外,2.6 安装使其成为“当前”版本,具有 .../Python.framework/Versions/Current
指向 2.6.,/usr/local/bin
中如此简单的“python”内容指向 2.6,但这并不重要,因为 usr/bin
首先出现,其中同名的东西指向 2.5 东西。无论如何,2.5 带有 leopard,我安装 3.0.1 只是为了拥有最新版本(有一个 dmg 文件),现在我安装了 2.6.2与 pygame 一起使用。
编辑:好的,这就是我的理解方式。例如,当您安装 Python 2.6.2 时:
一堆符号链接(symbolic link)被添加到 /usr/local/bin
, 所以当有一个 #! /usr/local/bin/python
shebang 在 python 脚本中,它将运行,并在 /Applications/Python 2.6
中, Python Launcher 成为运行 .py 文件的默认应用程序,它使用 /usr/local/bin/pythonw
, 和 /Library/Frameworks/Python.framework/Versions/2.6/bin
被创建并添加到路径的前面,所以 which python
会在那里得到 python ,还有#! /usr/bin/env python
shebang 将正确运行。
最佳答案
没有先验保证/usr/local/bin 会保留在 PATH 上(特别是它不一定会保留在/usr/bin 的“前面!-”),因此安装程序确保特别需要的/Library/.../bin 目录确实进入了 PATH。另外,/Library/.../bin 可能有一些补充内容没有符号链接(symbolic link)到/usr/local/bin,尽管我相信最近的 Python Mac 标准发行版目前不是这种情况。
如果您知道您安排路径的方式,以及您将使用的确切可执行文件集,都完全满足/usr/local/bin,那么您可以删除/Library/etc 目录,当然是你自己的路径。
关于python - OS X - 多个 python 版本、PATH 和/usr/local,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1383863/