2010-06-28 64 views
1

我有一个带雪豹的MacBook Pro,以及标准的Python 2.6发行版。 Numpy无法正常工作。 Loadtxt给出的文件名错误太长,并且getfromtxt根本不起作用(模块错误中没有对象)。所以然后我尝试在MacPorts上下载py26-numpy端口。当然,当我使用python时,它默认mac分配。我如何将其切换为使用MacPorts中最新最好的。这似乎比构建我需要的所有工具更简单...开关蟒蛇的分布

谢谢!

+0

也许与http://www.superuser.com更相关 – MikeD 2010-06-28 16:54:27

回答

4

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

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

如果你有Python中的多个版本通过MacPorts的安装,和/或要容易的MacPorts和苹果分布之间切换,可以安装python_select端口以及。

还要注意的是Python 2.6中的MacPorts的版本安装到/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。

选项#3或#4可能是最好的选择。

+0

MacPorts路径位于我的$ PATH中。当我在shell中调用python时,它会打开与我的mac一起安装的解释器,所以我认为这是它在我运行脚本时使用的分布...?谢谢您的帮助! – lollygagger 2010-06-28 16:57:48

+0

在'$ PATH'的*前面*(或者至少在/ usr/bin之前)是'/ opt/local/bin'? – mipadi 2010-06-28 16:58:44

+0

啊 - 我想这是因为MacPorts的Python被安装为'/ opt/local/bin/python2.6'。我更新了我的答案以反映这一启示。 – mipadi 2010-06-28 17:17:31

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/bin在您的旧PATH值前面的

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到PATH变量的前面,同时保留路径的其余部分。如果此更改似乎不起作用,则需要确保.bashrc通过将source $HOME/.bashrc添加到您的.bash_profile脚本中或通过将必要的行移动到.bash_profile来调用。