<p>您的问题是需要安装Fortran编译器来生成<code>scipy</code>。</p>
<p>另外,如果已经有一个<code>numpy</code>是在禁用Fortran支持的情况下生成的,则可能需要替换它。一些苹果预装的Python版本已经预装了这样的构建。</p>
<hr/>
<p>获得Fortran的最简单方法是使用<a href="http://brew.sh/" rel="noreferrer">Homebrew</a>。正如<a href="https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Installation.md#installation" rel="noreferrer">the docs</a>所说,首先需要安装Xcode及其命令行工具。(安装命令行工具的方法几乎随Xcode的每个主要版本而改变,因此请参阅链接的文档以获得最新的解释。)然后安装Homebrew。安装URL已更改了几次,请参阅自制主页或安装说明(<a href="http://brew.sh/" rel="noreferrer">http://brew.sh/</a>),但它将类似于:</p>
<pre><code>ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
</code></pre>
<p>然后:</p>
<pre><code>brew install gcc
</code></pre>
<p>(请注意,直到2014年的某个时候,<code>gfortran</code>是与<code>gcc</code>分开的配方,因此命令是<code>brew install gfortran</code>。但是如果您现在尝试,您将得到一个错误,说“GNU Fortran现在作为GCC的一部分提供,并且可以使用<code>brew install gcc</code>安装。”</p>
<hr/>
<p>你真的想用<a href="https://pip.pypa.io" rel="noreferrer">^{<cd8>}</a>来安装<code>scipy</code>,所以如果你没有,请先安装它。苹果预装的Python,至少在10.7和10.8版本中,包括<code>easy_install</code>,但不包括<code>pip</code>,所以最简单的方法是:</p>
<pre><code>sudo easy_install pip
</code></pre>
<p>但是,您可能需要考虑使用<a href="http://www.virtualenv.org/en/latest/" rel="noreferrer">^{<cd12>}</a>而不是全局安装(在这种情况下,您还需要删除以下命令上的<code>sudo</code>)。</p>
<p>既然你有了<code>gfortran</code>和<code>pip</code>,你所要做的就是:</p>
<pre><code>sudo pip install --upgrade numpy
sudo pip install scipy
</code></pre>
<hr/>
<p>注意事项:</p>
<ul>
<li><p>以上说明适用于苹果预装的Python版本。如果您使用的是不同版本的Python,那么您真的应该考虑不要这样做。保持路径、安装包等同步是一个噩梦。例外情况是,如果您想要Python3.x版本,在这种情况下,从Python.org或Homebrew安装是完全合理的。不会有冲突,因为<code>python</code>,<code>pip2.7</code>等将用于苹果的Python;<code>python3</code>,<code>pip3.3</code>等将用于3.x版本。</p></li>
<li><p>如果你已经有了<code>pip</code>,但担心它可能已经过时,<code>pip install --upgrade pip</code>。(除了安全性和健壮性的优点外,这还可以使您与某些科学堆栈或其他模块的二进制轮兼容,从而节省大量时间。)</p></li>
<li><p>对于大多数非Apple Python安装(甚至可能是10.9或10.10中的Apple;我还没有检查过),应该使用<code>easy_install</code>来安装<code>pip</code>。按<a href="https://pip.pypa.io/en/latest/installing.html" rel="noreferrer">^{<cd8>} install instructions</a>键。但首先要确定你还没有。</p>
<ul>
<li>如果您使用的是<code>virtualenv</code>/<code>venv</code>,那么您的虚拟环境将已经包含<code>pip</code>。</li>
<li>Python 3.4或更高版本可能(如果来自Python.org安装程序,也将)包含一个<a href="https://www.python.org/dev/peps/pep-0453" rel="noreferrer">^{<cd8>} bootstrap</a>。如果您的3.4+还没有<code>pip</code>,您可能需要<code>python -m ensurepip</code>来安装它。</li>
<li>一些第三方安装,如自制或ActiveState,包括<code>pip</code>。</li>
</ul></li>
<li><p>对于Python 3.3或更高版本,您可能希望使用内置的<a href="http://docs.python.org/dev/library/venv.html" rel="noreferrer">^{<cd26>}</a>,而不是<code>virtualenv</code>。</p></li>
<li><p>如果您使用的是MacPorts、Fink、gentoo-alt等,那么您应该安装包管理器附带的<code>scipy</code>包,它将拖入所需的任何内容(甚至可能包括重新构建Python和GCC)。</p></li>
<li><p>第三方二进制安装(如enthught和ActiveState)可能已经包含<code>scipy</code>和您需要的所有内容。如果没有,则说明与上面的基本相同,但您必须猜测要跳过或遵循哪些步骤,是否<code>sudo</code>等。</p></li>
</ul>
<hr/>
<p>如果您使用的是Python2.7的非Apple版本,并且希望避免路径问题,则必须执行两项操作:</p>
<p>首先,永远不要在多个Python中安装任何包含脚本或二进制文件(包括<code>pip</code>本身)的Python包。例如,如果同时为Apple 2.7和Homebrew 2.7安装<code>ipython</code>,两者都将尝试创建名为<code>/usr/local/bin/ipython</code>和<code>/usr/local/bin/ipython-2.7</code>的脚本。如果幸运的话,一个安装将失败。否则,它们都会成功,一个会覆盖另一个,而您将无法运行被覆盖的版本。</p>
<p>其次,确保备用Python脚本和二进制文件的路径在路径中的Apple之前。根据您安装的备选Python和遵循的指令,可能是:</p>
<ul>
<li><code>/usr/local/bin</code></li>
<li><code>/Library/Frameworks/Python.framework/Versions/2.7/bin</code></li>
<li><code>/usr/local/share/python2.7/bin</code></li>
<li><code>/usr/local/Cellar/python/2.7.3/bin</code></li>
<li>别的什么</li>
</ul>
<p>无论路径是什么,都需要编辑路径变量。</p>
<p>如果您想影响GUI应用程序(和LaunchAgents等),显然已经没有一种受支持的方法来实现这一点,但是不推荐的<a href="http://developer.apple.com/library/mac/#/legacy/mac/library/qa/qa1067/_index.html" rel="noreferrer">QA1067</a>似乎在Lion中仍然有效。这也是自制酒<a href="https://github.com/mxcl/homebrew/wiki/FAQ" rel="noreferrer">FAQ</a>和<a href="https://github.com/mxcl/homebrew/wiki/Homebrew-and-Python" rel="noreferrer">Python FAQ</a>的建议。</p>
<p>如果您只关心命令行会话(包括Terminal.app和remote ssh),那么您可以只做标准的Unix操作,即编辑适当的概要文件。哪个配置文件合适取决于要影响的内容。(所有用户还是只有一个用户?猛击还是炮弹?如果你不知道你想要哪一个,你真的应该做些研究。如果你不想费心学习,只要做<code>~/.profile</code>,然后不要抱怨,如果这不是你想要的。</p>
<p>不管怎样,您都需要确保适当的路径位于路径中的<code>/usr/bin</code>之前。例如,您可以在<code>~/.profile</code>中添加以下内容:</p>
<pre><code>PATH=/usr/local/bin:$PATH
export PATH
</code></pre>
<p>(当然,在脚本生效之前,您需要创建一个新的终端shell,或者源代码脚本。)</p>
<p>如果你正在使用<code>homebrew</code>,那么<code>brew doctor</code>将告诉你是否正确。</p>