1

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

谢谢!

4

3 回答 3

4

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

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

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

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

  1. python2.6使用(不仅仅是)启动解释器python
  2. 设置一个 shell 别名,以便python调用python2.6( alias python=python2.6)。
  3. /opt/local/bin/python从->手动设置符号链接/opt/local/bin/python2.6
  4. 用于python_select设置调用python.

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

于 2010-06-28T16:51:50.863 回答
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

于 2010-06-28T16:50:20.490 回答
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_profilebash 的文件将在启动时读取。该.bashrc文件通常用于包含所有 shell 的指令,并且.bash_profile仅用于包含交互式 shell 的指令。因此,要使此更改生效,您可以编辑/Users/yourname/.bashrc以包含如下一行:

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

What that does is add /opt/local/bin to the front of the path variable while leaving the rest of the path alone. If that change doesn't seem to work, you will need to either ensure .bashrc is getting called by adding source $HOME/.bashrc to your .bash_profile script, or just move the necessary line into .bash_profile.

于 2010-06-28T17:14:13.907 回答