aba*_*ert 34
Lion 为每个Python实现提供了一个easy_install:/usr/bin/easy_install-2.7for /usr/bin/python2.7,同样适用于2.6和2.5.
但是,scipy需要一个Fortran编译器,并且Lion没有附带其中一个.看起来你必须在安装numpy之前安装Fortran编译器,否则scipy以后就无法安装.
首先,您需要Xcode命令行工具.(Apple经常更改此软件包的名称 - 可能是"Unix开发工具",或"CLI开发工具链"等,具体取决于您的Xcode版本.)
这些可以由Xcode本身安装.如果您使用的是4.3.x,则从App Store安装Xcode后,启动它,转到"首选项","下载","组件",然后单击"命令行工具"旁边的"安装"按钮.对于不同的版本,或者如果你想在没有Xcode的情况下安装它们,Homebrew页面(见下文)解释了如何获取它们,或者你可以浏览Apple的开发者网站.
如果您已经拥有包管理器(Homebrew,MacPorts或Fink),请使用它.如果不这样做,请安装Homebrew:
curl https://raw.github.com/gist/323731/25f99360c7de3f72027d8fd07cb369b1c8756ea6/install_homebrew.rb -o /tmp/install_homebrew.rb
ruby /tmp/install_homebrew.rb
rehash
Run Code Online (Sandbox Code Playgroud)
然后像这样安装gfortran:
brew install gfortran
Run Code Online (Sandbox Code Playgroud)
现在你已经准备好安装numpy和scipy了.如果你更喜欢pip到easy_install(如果你不知道,你可能更喜欢pip),你必须先安装:
sudo easy_install-2.6 pip
Run Code Online (Sandbox Code Playgroud)
然后用它来安装包:
sudo pip-2.6 install numpy
Run Code Online (Sandbox Code Playgroud)
根据您的确切操作系统版本和其他详细信息,您可能已经有2.6的内置numpy,但该numpy没有Fortran支持.你可以这样sudo pip-2.6 install numpy说,因为说Requirement already satisfied (use --upgrade to upgrade): numpy in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python.解决方案是完成错误消息所说的内容:
sudo pip-2.6 install --upgrade numpy
Run Code Online (Sandbox Code Playgroud)
最后:
sudo pip-2.6 install scipy
Run Code Online (Sandbox Code Playgroud)
her*_*ara 24
我遇到了在Mountain Lion上安装SciPy的类似问题.
OSX Mountain Lion 10.8
Python 2.7.3
点1.1
酿造0.9.2
GNU Fortran(GCC)4.2.1
我收到的一些错误包括:
这个:
pip install scipy
Run Code Online (Sandbox Code Playgroud)
产生了这个错误:
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)
这促使我寻找Fortran编译器:
这个命令:
brew install gfortran
Run Code Online (Sandbox Code Playgroud)
哪个产生了这个错误:
Error: Currently the gfortran compiler provided by this brew is only supports the following versions of XCode:
- XCode 3.1.4 on OS X 10.5.x
- XCode 3.2.2/3.2.3 -- 4.0 on OS X 10.6.x
- XCode 4.1 or newer on OS X 10.7.x
The AppStore and Software Update can help upgrade your copy of XCode.
The latest version of XCode is also available from:
http://developer.apple.com/technologies/xcode.html
Run Code Online (Sandbox Code Playgroud)
这让我想到了一篇博文:http://www.joewandy.com/.我遵循了这个建议:
这个命令:
brew edit gfortran
Run Code Online (Sandbox Code Playgroud)
将使用xcode打开一个文件.我在两个地方修改了这个文件:
论文2行:
if MacOS.xcode_version >= '4.2' and MACOS_VERSION == 10.7
ohai "Installing gfortran 4.2.4 for XCode 4.2 (build 5666)"
Run Code Online (Sandbox Code Playgroud)
变成:
if MacOS.xcode_version >= '4.2' and MACOS_VERSION >= 10.7
ohai "Installing gfortran 4.2.4 for XCode 4.2 (build 5666) or higher"
Run Code Online (Sandbox Code Playgroud)
换一种说法:
已更改== 10.7为>= 10.7
已更改XCode 4.2 (build 5666)为XCode 4.2 (build 5666) or higher
然后我做了
brew install gfortran
Run Code Online (Sandbox Code Playgroud)
再次.这是成功的消息:
Downloading http://r.research.att.com/tools/gcc-42-5666.3-darwin11.pkg
Already downloaded: /Library/Caches/Homebrew/gfortran-4.2.4-5666.3.pkg
==> Installing gfortran 4.2.4 for XCode 4.2 (build 5666) or higher
==> Caveats
Brews that require a Fortran compiler should not use:
depends_on 'gfortran'
The preferred method of declaring Fortran support is to use:
def install
...
ENV.fortran
...
end
==> Summary
/usr/local/Cellar/gfortran/4.2.4-5666.3: 86 files, 72M, built in 2 seconds
Run Code Online (Sandbox Code Playgroud)
然后我做了:
pip install scipy
Run Code Online (Sandbox Code Playgroud)
但那给了我这个:
#error "<vecLib/vecLib.h> is deprecated. Please #include <Accelerate/Accelerate.h> and link to Accelerate.framework."
Run Code Online (Sandbox Code Playgroud)
然后我发现这篇博文:在Mountain Lion上编译SciPy http://www.thisisthegreenroom.com/2012/compiling-scipy-on-mountain-lion/
据说使用这个命令:
pip install -e git+https://github.com/scipy/scipy#egg=scipy-dev
Run Code Online (Sandbox Code Playgroud)
这需要大约5到6分钟才能完成
Installed /Users/hernamesbarbara/src/scipy
Successfully installed scipy
Cleaning up...
Run Code Online (Sandbox Code Playgroud)
之后我才能做到
python
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy
>>> help(scipy)
Help on package scipy:
NAME
scipy
Run Code Online (Sandbox Code Playgroud)
成功!
已安装SciPy版本:
full_version = '0.12.0.dev-14b1e07'
git_revision = '14b1e07602ff33a6e8250eb2bc7a6816677606a9'
release = False
short_version = '0.12.0'
version = '0.12.0.dev-14b1e07'
Run Code Online (Sandbox Code Playgroud)