我在macports上安装了两个不同版本的pythons,apple python 2.6也在运行。现在我需要运行一个需要python中MySQLdb包支持的程序,这个包安装在macports安装的python上。程序告诉我没有安装MySQLdb,所以我猜是apple python在为该程序工作。
我搜索了一些帮助,发现python_select可以在pythons之间切换。但是在命令之后

$>sudo python_select python25

告诉我它为python选择了“python25”版本,当我输入
$>python

仍然是苹果Python2.6发布。
问题是,我如何让python25(MySQLdb中的python25)为程序而不是apple python工作?
另一件重要的事情是,程序不是一个.py文件,需要在运行之前编译。所以我需要重新安装这个程序吗?我的MacOS版本是SnowLeopard10.6。
如有任何答复,我们将不胜感激。

最佳答案

默认情况下,MacPorts会在/opt/local/bin中安装用户程序(或指向它们的链接)。MacPortsselect_python命令选择链接到哪个python实例。它对Apple在/opt/local/bin/python中安装的内容没有影响(也不应该影响),这是Apple提供的/usr/binpython命令所在的位置。
要调用MacPorts python2.5,您要么需要确保shellpython2.x上的/opt/local/bin位于/usr/bin之前(可以通过修改$PATH或其他shell初始化脚本来执行此操作),要么只需使用绝对路径引用调用所需的python:

$ /usr/bin/python your-program.py

使用苹果提供的默认python;
$ /opt/local/bin/python your-program.py

要使用与.bash_profile一起选择的版本,或:
$ /opt/local/bin/python2.5 your-program.py

显式地选择MacPorts2.5。
编辑:
要修改搜索路径以使用MacPorts,请将此行添加到python_select
export PATH=/opt/local/bin:/opt/local/sbin:$PATH

关于python - 如何使python_select适用于'$> python'命令?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1768881/

10-12 15:31