我在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/bin
和python
命令所在的位置。
要调用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/