如何让python_select适用于'$>python'命令?
我在我的电脑上用macports安装了几个不同版本的Python,同时苹果自带的Python 2.6也在运行。现在我需要运行一个程序,这个程序需要在Python中支持MySQLdb这个包,而这个包是安装在我通过macports安装的Python里的。可是程序告诉我没有安装MySQLdb,所以我猜是苹果的Python在为这个程序工作。
我找了一些帮助,发现可以用python_select来切换不同的Python版本。但是在我输入了这个命令后
$>sudo python_select python25
它告诉我选择了“python25”这个版本的Python,但当我输入
$>python
时,还是启动了苹果的Python 2.6。
我的问题是,怎么才能让python25(那个有MySQLdb的版本)为这个程序工作,而不是苹果的Python呢?
还有一个重要的事情是,这个程序不是一个.py文件,需要在运行之前先编译。那么我需要重新安装这个程序吗?我的Mac OS版本是Snow Leopard 10.6。
任何回答都非常感谢。
3 个回答
在Mac上,'python'其实只是一个链接。你可以输入'which python'来查看这个链接指向哪里,然后用'cd'命令进入这个链接所在的文件夹,接着输入'ls -a py*'来查看所有以'py'开头的文件。这样你就能看到'python'链接指向的具体位置。如果你想让这个'python'指向你安装的其他版本,只需要把它链接到正确的版本上就可以了。
首先,我对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的位置。
这只是我的一点建议。如果我的回答没能帮到你,我很抱歉。
默认情况下,MacPorts会把用户程序(或者链接到这些程序)安装在 /opt/local/bin
这个地方。MacPorts 的 select_python
命令用来选择哪个 Python 版本链接到 /opt/local/bin/python
。这个命令不会影响(也不应该影响)苹果在 /usr/bin
目录下安装的内容,那里的 python
和 python2.x
是苹果自带的命令。
如果你想使用 MacPorts 的 python2.5,你需要确保 /opt/local/bin
在你的 shell $PATH
中排在 /usr/bin
前面(你可以通过修改你的 .bash_profile
或其他 shell 初始化脚本来做到这一点),或者你也可以直接用绝对路径来调用你想要的 Python:
$ /usr/bin/python your-program.py
使用苹果自带的默认 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