您的问题是您需要安装 Fortran 编译器来构建scipy
.
此外,如果您已经有一个numpy
禁用 Fortran 支持的构建,您可能需要替换它。一些 Apple 预装的 Python 版本已经numpy
预装了这样的构建。
获取 Fortran 的最简单方法是使用Homebrew。正如文档所说,您需要先安装 Xcode 及其命令行工具。(安装命令行工具的方式几乎随 Xcode 的每个主要版本而变化,因此请参阅链接文档以获取最新说明。)然后安装 Homebrew。安装 URL 已经更改了几次,因此请参阅 Homebrew 主页或安装说明 ( http://brew.sh/ ),但会是这样的:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
然后:
brew install gcc
(请注意,直到 2014 年的某个时候,gfortran
它是一个单独的配方gcc
,所以命令brew install gfortran
是:brew install gcc
“。)
你真的很想使用pip
to install scipy
,所以如果你没有那个,请先获取它。Apple 预装的 Python,至少在 10.7 和 10.8 中,包括easy_install
但不包括pip
,所以最简单的方法是:
sudo easy_install pip
但是,您可能需要考虑使用 avirtualenv
而不是全局安装(在这种情况下,您还希望删除sudo
以下命令中的 )。
现在你已经有了gfortran
and pip
,你所要做的就是:
sudo pip install --upgrade numpy
sudo pip install scipy
注意事项:
上述说明适用于 Apple 预装的 Python 版本。如果你使用的是不同版本的 Python,你真的应该考虑不这样做。保持路径、安装的包等同步是一场噩梦。例外情况是如果您想要 Python 3.x 版本,在这种情况下,从 python.org 或 Homebrew 安装它是完全合理的。不会有冲突,因为python
,pip2.7
等将用于 Apple 的 Python;python3
, pip3.3
, 等用于 3.x 版本。
如果您已经有pip
,但担心它可能已过时,pip install --upgrade pip
. (除了安全性和鲁棒性的好处之外,这可以让您与某些科学堆栈或其他模块的二进制轮子兼容,从而为您节省大量时间。)
对于大多数非 Apple Python安装(甚至可能是 Apple 在 10.9 或 10.10 中的;我还没有检查过),您不应该使用. 按照安装说明进行操作。但首先要确保你还没有它。easy_install
pip
pip
- 如果您使用
virtualenv
/ venv
,您的虚拟环境将已经包含pip
.
- Python 3.4 或更高版本可能(并且将,如果来自 python.org 安装程序)包含一个
pip
bootstrap。如果您的 3.4+ 还没有pip
,您可能需要python -m ensurepip
安装它。
- 一些第三方安装,如 Homebrew 或 ActiveState,包括
pip
.
对于 Python 3.3 或更高版本,您可能希望使用内置的venv
而不是virtualenv
.
如果你正在使用 MacPorts、Fink、gentoo-alt 等,你应该安装scipy
你的包管理器附带的包,它会拖入它需要的任何其他东西(甚至可能包括重建 Python 和 GCC)。
第三方二进制安装,如 Enthought 和 ActiveState 可能已经包含scipy
您需要的所有其他内容。如果没有,说明与上面基本相同,但您必须猜测要跳过或遵循哪些步骤,是否要执行sudo
等。
如果您使用的是 Python 2.7 的非 Apple 版本,并且想要避免 PATH 问题,则必须做两件事:
首先,永远不要pip
在多个 Python 中安装任何包含脚本或二进制文件(包括其自身)的 Python 包。例如,如果您同时安装ipython
Apple 2.7 和 Homebrew 2.7,两者都将尝试创建名为/usr/local/bin/ipython
和的脚本/usr/local/bin/ipython-2.7
。如果幸运的话,一次安装将失败。否则,它们都会成功,一个最终会覆盖另一个,并且您将无法运行覆盖的版本。
其次,确保备用 Python 脚本和二进制文件的路径位于 Apple 的 PATH 之前。根据您安装的备用 Python 以及您遵循的说明,这可能是:
/usr/local/bin
/Library/Frameworks/Python.framework/Versions/2.7/bin
/usr/local/share/python2.7/bin
/usr/local/Cellar/python/2.7.3/bin
- 别的东西
无论路径是什么,您都需要编辑 PATH 变量。
如果您想影响 GUI 应用程序(和 LaunchAgent 等),显然不再有支持的方式来执行此操作,但已弃用的QA1067似乎仍然可以在 Lion 中使用。这也是 Homebrew FAQ和Python FAQ所建议的。
如果您只关心命令行会话(Terminal.app 和远程 ssh),则可以改为只执行标准 Unix 操作,即编辑相应的配置文件。哪个配置文件适合取决于您想要影响的内容。(所有用户还是只有一个用户?bash 或任何 shell?等等。)如果你不知道你想要哪一个,你真的应该做一些研究。如果你不想费心学习,~/.profile
那就去做,如果这不是你想要的,就不要抱怨。
无论哪种方式,您都需要确保适当的路径出现/usr/bin
在 PATH 之前。因此,例如,您可以将以下内容添加到~/.profile
:
PATH=/usr/local/bin:$PATH
export PATH
(您当然需要创建一个新的终端 shell 或获取脚本,然后才能生效。)
如果您正在使用homebrew
,brew doctor
会告诉您是否正确。