我用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。
感谢任何回答。
答案 0 :(得分:7)
默认情况下,MacPorts会在/opt/local/bin
中安装用户程序(或指向它们的链接)。 MacPorts select_python
命令选择将哪个python实例链接到/opt/local/bin/python
。它对Apple在/usr/bin
中安装的内容没有任何影响(也不应该这样),这是Apple提供的python
和python2.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)
'python'只是一个链接。对'python'所在的目录执行'which python','cd',然后执行'ls -a py *'。你应该看到python指向的位置。如果你希望那个python指向你不同版本的python,只需将它链接到正确的版本。