我成功地在MacOSX上为Python2.7.3构建/安装了NumPy。 现在我也要构建/安装scipy。我从git hub下载的。 进入目录。运行python setup.py build,在遇到以下错误之前它似乎一直在工作:
customize Gnu95FCompiler
Could not locate executable gfortran
Could not locate executable f95
customize NAGFCompiler
customize AbsoftFCompiler
Could not locate executable f90
Could not locate executable f77
customize IBMFCompiler
Could not locate executable xlf90
Could not locate executable xlf
customize IntelFCompiler
Could not locate executable ifort
Could not locate executable ifc
customize GnuFCompiler
Could not locate executable g77
customize G95FCompiler
Could not locate executable g95
customize PGroupFCompiler
Could not locate executable pgfortran
don't know how to compile Fortran code on platform 'posix'
building 'dfftpack' library
error: library dfftpack has Fortran sources but no Fortran compiler found
我以为我为NumPy安装了Fortran…你猜不是吗?我怎么下载呢?
您的问题是需要安装Fortran编译器来生成
scipy
。另外,如果已经有一个
numpy
是在禁用Fortran支持的情况下生成的,则可能需要替换它。一些苹果预装的Python版本已经预装了这样的构建。获得Fortran的最简单方法是使用Homebrew。正如the docs所说,首先需要安装Xcode及其命令行工具。(安装命令行工具的方法几乎随Xcode的每个主要版本而改变,因此请参阅链接的文档以获得最新的解释。)然后安装Homebrew。安装URL已更改了几次,请参阅自制主页或安装说明(http://brew.sh/),但它将类似于:
然后:
(请注意,直到2014年的某个时候,
gfortran
是与gcc
分开的配方,因此命令是brew install gfortran
。但是如果您现在尝试,您将得到一个错误,说“GNU Fortran现在作为GCC的一部分提供,并且可以使用brew install gcc
安装。”你真的想用^{} 来安装
scipy
,所以如果你没有,请先安装它。苹果预装的Python,至少在10.7和10.8版本中,包括easy_install
,但不包括pip
,所以最简单的方法是:但是,您可能需要考虑使用^{} 而不是全局安装(在这种情况下,您还需要删除以下命令上的
sudo
)。既然你有了
gfortran
和pip
,你所要做的就是:注意事项:
以上说明适用于苹果预装的Python版本。如果您使用的是不同版本的Python,那么您真的应该考虑不要这样做。保持路径、安装包等同步是一个噩梦。例外情况是,如果您想要Python3.x版本,在这种情况下,从Python.org或Homebrew安装是完全合理的。不会有冲突,因为
python
,pip2.7
等将用于苹果的Python;python3
,pip3.3
等将用于3.x版本。如果你已经有了
pip
,但担心它可能已经过时,pip install --upgrade pip
。(除了安全性和健壮性的优点外,这还可以使您与某些科学堆栈或其他模块的二进制轮兼容,从而节省大量时间。)对于大多数非Apple Python安装(甚至可能是10.9或10.10中的Apple;我还没有检查过),应该使用} install instructions 键。但首先要确定你还没有。
easy_install
来安装pip
。按^{virtualenv
/venv
,那么您的虚拟环境将已经包含pip
。pip
,您可能需要python -m ensurepip
来安装它。pip
。对于Python 3.3或更高版本,您可能希望使用内置的^{} ,而不是
virtualenv
。如果您使用的是MacPorts、Fink、gentoo-alt等,那么您应该安装包管理器附带的
scipy
包,它将拖入所需的任何内容(甚至可能包括重新构建Python和GCC)。第三方二进制安装(如enthught和ActiveState)可能已经包含
scipy
和您需要的所有内容。如果没有,则说明与上面的基本相同,但您必须猜测要跳过或遵循哪些步骤,是否sudo
等。如果您使用的是Python2.7的非Apple版本,并且希望避免路径问题,则必须执行两项操作:
首先,永远不要在多个Python中安装任何包含脚本或二进制文件(包括
pip
本身)的Python包。例如,如果同时为Apple 2.7和Homebrew 2.7安装ipython
,两者都将尝试创建名为/usr/local/bin/ipython
和/usr/local/bin/ipython-2.7
的脚本。如果幸运的话,一个安装将失败。否则,它们都会成功,一个会覆盖另一个,而您将无法运行被覆盖的版本。其次,确保备用Python脚本和二进制文件的路径在路径中的Apple之前。根据您安装的备选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
无论路径是什么,都需要编辑路径变量。
如果您想影响GUI应用程序(和LaunchAgents等),显然已经没有一种受支持的方法来实现这一点,但是不推荐的QA1067似乎在Lion中仍然有效。这也是自制酒FAQ和Python FAQ的建议。
如果您只关心命令行会话(包括Terminal.app和remote ssh),那么您可以只做标准的Unix操作,即编辑适当的概要文件。哪个配置文件合适取决于要影响的内容。(所有用户还是只有一个用户?猛击还是炮弹?如果你不知道你想要哪一个,你真的应该做些研究。如果你不想费心学习,只要做
~/.profile
,然后不要抱怨,如果这不是你想要的。不管怎样,您都需要确保适当的路径位于路径中的
/usr/bin
之前。例如,您可以在~/.profile
中添加以下内容:(当然,在脚本生效之前,您需要创建一个新的终端shell,或者源代码脚本。)
如果你正在使用
homebrew
,那么brew doctor
将告诉你是否正确。从2014年5月20日起,如果您使用的是brew,Fortran将作为gcc的一部分安装。不需要单独的Fortran包。以下是我安装numpy的工作原理:
brew install gcc
)which gcc
应该指向/usr/local/bin/gcc)export ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future
(见Problems with pip install numpy - RuntimeError: Broken toolchain: cannot link a simple C program)pip install numpy
看起来您的实际问题只是Sourceforge的间歇性下载失败:
如果您再次尝试
brew install gfortran
,自制程序将自动从此错误中恢复。所以,这是第一个尝试。如果不起作用,请查看
brew doctor
是否发现任何问题,然后brew install -d gfortran
查看它存储部分下载文件的位置,以便您可以手动删除该文件并重试。如果其他方法都失败了,可以使用
--build-from-source
强制它不使用瓶子。当然,从源代码构建要比安装二进制瓶子花费更长的时间,但它应该会给出相同的结果。相关问题 更多 >
编程相关推荐