Meg*_*an 33 python macos fortran scipy python-2.7
我在我的mac os x上为python 2.7.3成功构建/安装了NumPy.现在我想建立/安装scipy.我从git hub下载了它.进入目录.Ran 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
Run Code Online (Sandbox Code Playgroud)
我以为我为NumPy安装了Fortran ...猜不是吗?我该如何下载?
aba*_*ert 93
您的问题是需要安装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)"
Run Code Online (Sandbox Code Playgroud)
然后:
brew install gcc
Run Code Online (Sandbox Code Playgroud)
(请注意,直到2014年的某个时间,gfortran是一个单独的配方gcc,所以命令是brew install gfortran.但如果你现在尝试,你会得到一个错误说"GNU Fortran现在作为GCC的一部分提供,并且可以安装:brew install gcc".)
你真的想用来pip安装scipy,所以如果你没有,那就先搞定吧.Apple预先安装的Python,至少在10.7和10.8中包括easy_install但不包括pip,所以最简单的方法是:
sudo easy_install pip
Run Code Online (Sandbox Code Playgroud)
但是,您可能需要考虑使用virtualenv而不是全局安装(在这种情况下,您还要删除sudo以下命令).
现在,你有gfortran和pip,所有你需要做的是这样的:
sudo pip install --upgrade numpy
sudo pip install scipy
Run Code Online (Sandbox Code Playgroud)
注意事项:
以上说明适用于Apple预装的Python版本.如果你使用的是不同版本的Python,你真的应该考虑不这样做.保持路径,安装的包等同步是一场噩梦.例外情况是你想要一个Python 3.x版本,在这种情况下从python.org或Homebrew安装它是完全合理的.不会有任何冲突,因为python,pip2.7等将成为苹果的Python的; python3,pip3.3等等3.x版本.
如果你已经拥有pip,但担心它可能已经过时了pip install --upgrade pip.(除了安全性和稳健性优势之外,通过使您与某些科学堆栈或其他模块的二进制轮子兼容,这可以为您节省大量时间.)
对于大多数非苹果的Python安装(甚至是苹果在10.9或10.10;我没有检查),你应该不使用easy_install安装pip.按照pip安装说明.但首先要确保你还没有它.
virtualenv/ venv,则您的虚拟环境已经包含pip.pip引导程序.如果你的3.4+还没有pip,你可能想要python -m ensurepip安装它.pip.对于Python 3.3或更高版本,您可能希望使用内置venv而不是virtualenv.
如果您正在使用MacPorts,Fink,gentoo-alt等,您应该安装scipy软件包管理器附带的软件包,它将拖入其需要的任何其他内容(甚至包括重建Python和GCC).
像Enthought和ActiveState这样的第三方二进制安装可能已包含scipy您需要的所有其他内容.如果没有,说明基本上与上面相同,但你必须猜测要跳过或遵循哪些步骤,是否sudo等等.
如果你使用非Apple的Python 2.7版本,并且想要避免PATH问题,那么你必须做两件事:
首先,不要pip在多个Python中安装包含脚本或二进制文件(包括其自身)的任何Python包.例如,如果ipython同时安装Apple 2.7和Homebrew 2.7,则两者都将尝试创建名为/usr/local/bin/ipython和的脚本/usr/local/bin/ipython-2.7.如果幸运的话,一次安装将失败.否则,它们都会成功,最终会覆盖另一个,你将无法运行覆盖版本.
其次,确保备用Python的脚本和二进制文件的路径出现在PATH中的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无论路径是什么,您都需要编辑PATH变量.
如果你想影响GUI应用程序(和LaunchAgents等),显然不再支持这样做的方法,但已弃用的QA1067似乎仍然可以在Lion中运行.这也是Homebrew FAQ和Python常见问题解答的建议.
如果您只关心命令行会话(Terminal.app和远程ssh),那么您只需执行编辑相应配置文件的标准Unix操作即可.哪个配置文件适合取决于您想要影响的内容.(所有用户或只有一个用户?bash或任何shell?等等.)如果你不知道你想要哪一个,你真的应该做一些研究.如果你不想打扰学习,~/.profile那就做,然后不要抱怨,如果它不是你想要的.
无论哪种方式,您都需要确保/usr/bin在PATH 之前有适当的路径.因此,例如,您可以将以下内容添加到~/.profile:
PATH=/usr/local/bin:$PATH
export PATH
Run Code Online (Sandbox Code Playgroud)
(当然,您需要创建一个新的终端shell,或者在脚本生效之前获取源代码.)
如果您正在使用homebrew,brew doctor会告诉您是否正确.
| 归档时间: |
|
| 查看次数: |
32540 次 |
| 最近记录: |