如何使python_select适用于'$> python'命令?

时间:2009-11-20 07:23:12

标签: python macos mysql

我用macports安装了几个不同版本的python,而apple python 2.6也正常工作。现在我需要在python中运行一个需要MySQLdb包支持的程序,并且这个包安装到我通过macports安装的python中。该程序告诉我没有安装MySQLdb,所以我猜这是为该程序工作的苹果python。

我搜索了一些帮助,发现python_select用于在python之间切换。但是在命令之后

$>sudo python_select python25
当我输入

时,

告诉我它为python选择了版本“python25”

$>python

它仍然是启动的Apple python 2.6。

问题是我怎么能让python25(MySQLdb的那个)适用于程序而不是苹果python?

另一个重要的事情是,该程序不是.py文件,需要在运行之前进行编译。所以我需要重新安装这个程序吗?我的Mac OS版本是Snow Leopard 10.6。

感谢任何回答。

3 个答案:

答案 0 :(得分:7)

默认情况下,MacPorts会在/opt/local/bin中安装用户程序(或指向它们的链接)。 MacPorts select_python命令选择将哪个python实例链接到/opt/local/bin/python。它对Apple在/usr/bin中安装的内容没有任何影响(也不应该这样),这是Apple提供的pythonpython2.x命令所在的位置。

要调用MacPorts python2.5,您需要确保/opt/local/bin位于/usr/bin $PATH之前(您可以通过修改.bash_profile或其他shell初始化脚本)或者您可以使用绝对路径引用简单地调用所需的python:

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

使用Apple提供的默认python;

$ /opt/local/bin/python your-program.py

使用python_select选择的版本,或:

$ /opt/local/bin/python2.5 your-program.py

明确选择MacPorts 2.5。

编辑:

要修改搜索路径以使用MacPorts,请将此行添加到.bash_profile

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

答案 1 :(得分:0)

首先,我不确定Mac,因为我之前从未使用它。

但在Linux中,我做whereis python

它会显示为/usr/bin/python /usr/local/bin/python ....等

在我的.bashrc文件中,当我想要export PATH=/usr/local/bin:/usr/bin:$PATH更优先时,我只需/usr/local/bin

或者您仍然可以像

一样运行
/usr/bin/python yourpython.py

/usr/local/bin/python yourpython.py 

取决于您的python安装位置

只差我2美分。对不起,如果我的回答没有给你任何帮助。

答案 2 :(得分:0)

Mac中的

'python'只是一个链接。对'python'所在的目录执行'which python','cd',然后执行'ls -a py *'。你应该看到python指向的位置。如果你希望那个python指向你不同版本的python,只需将它链接到正确的版本。