切换python发行版

时间:2010-06-28 16:43:59

标签: python osx-snow-leopard numpy macports

我有一台带有Snow Leopard的MacBook Pro,以及标配的Python 2.6发行版。 Numpy无法正常工作。 Loadtxt提供的文件名错误太长,getfromtxt根本不起作用(模块错误中没有对象)。然后我尝试在MacPorts上下载py26-numpy端口。当然,当我使用python时,它默认为mac发行版。如何切换它以使用MacPorts中的最新和最好的。这似乎比从源代码构建我需要的所有工具简单得多......

谢谢!

3 个答案:

答案 0 :(得分:4)

首先,将MacPorts路径(/opt/local/bin)添加到$PATH。在.bashrc(或您使用的任何shell配置文件)中:

export PATH="/opt/local/bin:${PATH}"

如果您通过MacPorts安装了多个版本的Python,并且/或者想要在MacPorts和Apple发行版之间轻松切换,您也可以安装python_select端口。

另请注意,MacPorts版本的Python 2.6已安装到/opt/local/bin/python2.6中,因此要使用该解释器,您必须执行以下三项操作之一:

  1. 使用python2.6(不只是python)启动口译员。
  2. 设置shell别名,以便python调用python2.6alias python=python2.6)。
  3. /opt/local/bin/python手动设置符号链接 - > /opt/local/bin/python2.6
  4. 使用python_select设置调用python时使用的Python。
  5. 选项#3或#4可能是最好的选择。

答案 1 :(得分:1)

您需要更新PATH,以便MacPorts中的内容位于标准系统目录的前面,例如export PATH=/opt/local/bin:/opt/local/sbin:/opt/local/Library/Frameworks/Python.framework/Versions/Current/bin/:$PATH

更新:请特别注意旧/opt/local/Library/Frameworks/Python.framework/Versions/Current/binPATH 前面的事实。

答案 2 :(得分:0)

现有的答案非常有用,但我注意到他们都没有说清楚如何改变。如果您不熟悉unix命令行,这可能很重要。

首先,解释:在基于unix的操作系统中,shell中的重要配置信息存储在称为环境变量的事物中。名为PATH的环境变量将shell定向到要查找程序的位置列表。当您键入命令时,它从PATH变量的最左端开始,并在该文件夹中查找您尝试运行的程序。如果找到它,它会运行它;否则它会在下一个文件夹中查找。如果安装了同一程序的多个版本,则可以使用PATH变量赋予一个优先级。

要使用此功能,请将带有闪亮新版本的文件夹放在路径前面,如下所示:

PATH=/opt/local/bin:/usr/bin:/usr/local/bin

要在单个版本的shell中进行此更改,可以键入

export PATH=/opt/local/bin:/usr/bin:/usr/local/bin

要在打开的每个shell中进行更改,您需要指示shell在每次启动时设置此变量。有一个名为.bashrc的文件,另一个名为.bash_profile的文件,bash会在启动时读取。 .bashrc文件通常用于包含所有shell的指令,.bash_profile用于包含仅适用于交互式shell的指令。因此,为了使此更改成为可能,您可以编辑/Users/yourname/.bashrc以包含如下所示的行:

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

这样做是将/opt/local/bin添加到路径变量的前面,而留下路径的其余部分。如果该更改似乎不起作用,则需要确保通过将source $HOME/.bashrc添加到.bash_profile脚本来调用.bashrc,或者只需将必要的行移至.bash_profile