在 Snow Leopard 上更改 python 符号链接?

在 Snow Leopard 上更改 python 符号链接?

我的 Snow Leopard 上安装了两个 python 2.5.4,不要问为什么。

当我从命令行运行“python”时,构建 5363 就会启动。当我运行/usr/bin/python2.5构建 5646(我需要的那个)时,就会启动。在您询问之前,构建号并不是它们之间的唯一区别,也是构建的“类型”,所以我真的无法开始使用这个 5363。

问题是,我需要的应用程序崩溃了(wxPython 中出现异常,无法在 Google 上搜索到该异常),而且我怀疑当我使用正确的 python 构建启动主应用程序时,线程会以错误的线程启动(之前在另一个系统上使用同一个应用程序时也发生过这种情况)。

我该如何更改“默认”python 2.5 以开始正确的构建?

我的路径是:

/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

which python仅返回:

/Library/Frameworks/Python.framework/Versions/Current/bin/python

ls -la /usr/bin/python*返回:

-rwxr-xr-x  2 root  wheel  86000 Sep 25  2010 /usr/bin/python
-rwxr-xr-x  5 root  wheel    925 Sep 25  2010 /usr/bin/python-config
lrwxr-xr-x  1 root  wheel     75 Sep 25  2010 /usr/bin/python2.5 -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5
lrwxr-xr-x  1 root  wheel     82 Sep 25  2010 /usr/bin/python2.5-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5-config
lrwxr-xr-x  1 root  wheel     75 Sep 25  2010 /usr/bin/python2.6 -> ../../System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6
lrwxr-xr-x  1 root  wheel     82 Sep 25  2010 /usr/bin/python2.6-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6-config
-rwxr-xr-x  2 root  wheel  86000 Sep 25  2010 /usr/bin/pythonw
lrwxr-xr-x  1 root  wheel     76 Sep 25  2010 /usr/bin/pythonw2.5 -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/pythonw2.5
lrwxr-xr-x  1 root  wheel     76 Sep 25  2010 /usr/bin/pythonw2.6 -> ../../System/Library/Frameworks/Python.framework/Versions/2.6/bin/pythonw2.6

ls -la /usr/local/bin/python*返回:

lrwxr-xr-x  1 root  wheel  68 Apr 22  2010 /usr/local/bin/python -> ../../../Library/Frameworks/Python.framework/Versions/2.5/bin/python
lrwxr-xr-x  1 root  wheel  75 Apr 22  2010 /usr/local/bin/python-config -> ../../../Library/Frameworks/Python.framework/Versions/2.5/bin/python-config
lrwxr-xr-x  1 root  wheel  71 Apr 22  2010 /usr/local/bin/python2.5 -> ../../../Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5
lrwxr-xr-x  1 root  wheel  78 Apr 22  2010 /usr/local/bin/python2.5-config -> ../../../Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5-config
lrwxr-xr-x  1 root  wheel  69 Apr 22  2010 /usr/local/bin/pythonw -> ../../../Library/Frameworks/Python.framework/Versions/2.5/bin/pythonw
lrwxr-xr-x  1 root  wheel  72 Apr 22  2010 /usr/local/bin/pythonw2.5 -> ../../../Library/Frameworks/Python.framework/Versions/2.5/bin/pythonw2.5

我既不是 Python 专家也不是 *nix 专家,再加上 Mac,我感觉就很无助了……

请帮忙!

答案1

在 Mac OS X 上安装同一版本的多个 Python 实例并不罕见。

看起来你可能从 python.org 安装了一个 python2.5(即 中的符号链接/usr/local/bin),但现在你只想使用 Apple 提供的系统 Python 2.5(在 中/usr/bin)。导致前者首先被找到的原因是你的 shell 执行路径。实际上/usr/local/bin/python指向 中的一个文件

/Library/Frameworks/Python.framework/Versions/Current/bin/

这是 python.org 安装的一部分。默认情况下,python.org 安装程序会修改您的 shell 启动文件以将此目录插入到路径的开头。要撤消此操作,您可以恢复旧的启动文件。如果您使用的是默认 bash shell,则启动文件已命名,.bash_profile并且 Python 安装程序可能将原始启动文件的副本保存为.bash_profile.pysave。从终端会话中,您可以检查并恢复原始文件,如下所示:

$ cd $HOME
$ ls .*.pysave
.bash_profile.pysave  .profile.pysave
#
# compare the current file to the original saved file
#
# You'll probably see something like the following:
#
$ diff .bash_profile .bash_profile.pysave
4c4
---> # Setting PATH for MacPython 2.5
13c13
< PATH="/Library/Frameworks/Python.framework/Versions/2.5/bin:${PATH}"
---
#
# If so, it is safe to copy the saved file back and not lose
# any other changes you might have made
#
$ cp -p .bash_profile.pysave .bash_profile
#
# Then you will need to start a new Terminal session to see the changed PATH

如果您愿意或者.pysave找不到该文件,您可以手动编辑该文件以删除多余的目录。

答案2

省去头痛,使用Pythonbrew管理不同的 Python 版本。无需处理符号链接等。安装和使用非常简单。

相关内容