当前位置: 首页 > 面试题库 >

SciPy构建/安装Mac Osx

殷建弼
2023-03-14
问题内容

我已在Mac OS X上为python 2.7.3成功构建/安装了NumPy。现在,我也想构建/安装scipy。我是从git
hub下载的。进入目录。跑python setup.py构建,直到遇到此错误,它似乎一直在工作:

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版本已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。但是,如果现在尝试尝试,则会收到一条错误消息,指出“ GNU Fortran现在作为GCC的一部分提供,可以通过:brew install gcc“。)

您确实想使用pipinstall
scipy,所以如果没有安装,请先安装。Apple预先安装的Python(至少在10.7和10.8中)包括easy_install但不包括pip,因此最简单的方法是:

sudo easy_install pip

但是,您可能要考虑使用avirtualenv代替全局安装(在这种情况下,您还希望删除sudo以下命令中的)。

现在您已经拥有gfortranpip,您所要做的就是:

sudo pip install --upgrade numpy
sudo pip install scipy

注意事项:

  • 上面的说明适用于Apple的预安装版本的Python。如果您使用的是其他版本的Python,则应该真正考虑不要这样做。使路径,已安装的软件包等保持同步是一场噩梦。例外是,如果您想要Python 3.x版本,在这种情况下,从python.org或Homebrew安装它是完全合理的。不会有任何冲突,因为pythonpip2.7等将成为苹果的Python的; python3pip3.3等等,以用于3.x版本。

  • 如果您已经有了pip,但担心它可能会过时了,pip install --upgrade pip。(除了安全性和鲁棒性优点外,通过使您与某些科学堆栈或其他模块的二进制车轮兼容,还可以节省大量时间。)

  • 对于大多数非苹果的Python安装(甚至是苹果在10.9或10.10;我没有检查),你应该 使用easy_install安装pip。请遵循pip安装说明。但首先请确保您尚未拥有它。

    • 如果您使用virtualenv/ venv,则您的虚拟环境将已经包含pip
    • Python 3.4或更高版本可能(并且将会从python.org安装程序提供)包含pipbootstrap。如果您的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等等。

如果您使用的是非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脚本和二进制文件的路径位于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应用程序(和LaunchAgents等),显然不再有支持的方法,但是已弃用的QA1067似乎在Lion中仍然可以使用。这也是Homebrew
FAQ和Python
FAQ的建议。

如果您只关心命令行会话(Terminal.app和远程ssh),则可以执行标准的Unix编辑适当的配置文件的操作。哪个配置文件是合适的取决于您要影响的内容。(所有用户还是仅一个用户?bash还是任何shell?依此类推。)如果您不知道想要哪个,则应该进行一些研究。如果您不想打扰学习,~/.profile那就去做,如果不是您想要的,就不要抱怨。

无论哪种方式,您都需要确保适当的路径/usr/bin位于PATH之前。因此,例如,您可以将以下内容添加到中~/.profile

PATH=/usr/local/bin:$PATH
export PATH

(在生效之前,您当然需要创建一个新的Terminal shell或提供脚本源。)

如果您使用homebrewbrew doctor则会告诉您是否正确。



 类似资料:
  • 问题内容: 它可以安装NumPy的与PIP使用。 SciPy是否有类似的可能性?(这样做无效。) 更新资料 SciPy软件包现在可用于安装! 问题答案: 试图指出其在Python Package Index中 列出的问题,该点会进行搜索。 但是,一切并没有丢失。可以从Subversion(SVN),Git,Mercurial和Bazaar存储库安装。SciPy使用SVN: 更新(12-2012):

  • 主要内容:Windows,Linux标准Python发行版不捆绑任何SciPy模块。 一个轻量级的选择是使用流行的Python包安装程序安装SciPy, 如果安装Anaconda Python软件包,默认情况下会安装Pandas。 以下是将它们安装在不同操作系统中的软件包和链接。 Windows Anaconda(来自 https://www.continuum.io )是SciPy堆栈的免费Python发行版。 它也适用于Linu

  • 问题内容: 我目前正在关注 安装SciPy堆栈 的教程 , 以便在Ubuntu 12.04(精确的穿山甲)上安装SciPy(我无法使用,因为我需要最新版本)。 但是,执行以下命令时出现错误: sudo python setup.py install –prefix = / usr / local#安装到/ usr / local 此外,如何测试此模块是否正确安装? 问题答案: PyPM是安装它的好

  • Rx 不包含任何的外部依赖 下面是当前支持的选项: 手动方式 打开 Rx.xcworkspace,选择 RxExample 并且打开运行。这个方式会构建所有代码并且可以运行示例App CocoaPods :warning: # Podfile use_frameworks! target 'YOUR_TARGET_NAME' do pod 'RxSwift', '~> 2.0'

  • 我试图在我正在分发的包中创建所需的库。它需要SciPy和NumPy库。在开发过程中,我使用 它安装了SciPy 0.9。0和NumPy 1.5。1,而且效果很好。 我想使用-执行同样的操作,以便能够在设置中指定依赖项。我自己的包裹。 问题是,当我尝试时: 它很好用。 但是 惨败 我如何让它工作?

  • 问题内容: 我正在尝试在要分发的程序包中创建所需的库。它需要SciPy和NumPy库。在开发过程中,我同时使用 它安装了SciPy 0.9.0和NumPy 1.5.1,并且运行良好。 我想使用-做同样的事情,以便能够在我自己的包的setup.py中指定依赖项。 问题是,当我尝试: 它工作正常。 但是之后 惨败 我该如何工作? 问题答案: 我假设我的回答是Linux经验。我发现要顺利进行有三个先决条