我尝试在我的mac 10.6.8上安装scipy,但总是遇到问题。我已经安装了ipython(sudo /usr/bin/easy_install-2.6 ipython
)和numpy(python setup.py build/install
),但是当我以相同的方式安装scipy时,我总是收到此错误消息:
RuntimeError: Running cythonize failed!
有人可以告诉我如何解决这个问题吗?
答案 0 :(得分:1)
您是否尝试过使用为OSX提供的binaries?这应该确保一切正常。
修改强>
我发现保持程序包依赖性受到控制的最简单方法是尽可能多地使用MacPorts,因为与Homebrew不同,这些程序包可以协同工作,并且(当然,几乎总是)自动安装依赖项尝试安装一些东西。
首先,使用the installer为Snow Leopard安装MacPorts。选择在/opt/local
这样的唯一目录中安装端口的选项,这样它们就不会与操作系统所依赖的任何内置版本冲突。另外,请确保/opt/local/bin
和/opt/local/sbin
添加到$PATH
之前系统目录,例如/usr/bin
,/bin
,{{ 1}}等等,这样当您从命令提示符运行/sbin
时,您将获得所需的版本。您的python
应该有~/.profile
作为最后一行。
安装完MacPorts后,您可能只想重新启动以确保正确设置所有环境变量。启动Terminal.app(或您最喜欢的替代品)并输入export PATH="/opt/local/bin:/opt/local/sbin:$PATH
,如果一切正常,则应返回which port
。接下来,运行/opt/local/bin/port
只是为了确保所有内容都正确同步。完成后,我们可以安装python和一些模块。 sudo port selfupdate
允许您传递要安装的端口列表,因此port
之类的命令将安装最新版本的sudo port install foo bar baz
,foo
和{{1} } ports,以及它们可能需要的任何依赖项,按正确的顺序排列。某些端口具有二进制分发版,而其他端口则根据需要进行编译,因此第一次运行它时可能需要很多依赖项才能安装。 MacPorts的一个很好的功能是,您可以同时安装某些软件包的多个版本,并且可以根据需要在它们之间切换。此外,如果bar
提供过多结果,则在线search engine可以帮助您找到所需内容。
要获得一个像样的基于IPython的Python 2开发环境,你需要以下内容:
baz
port search
python27
py27-ipython
py27-numpy
(如果你喜欢画漂亮的照片,但主要是因为你可以得到py27-scipy
)py27-matplotlib
(pylab
s是你的朋友!)py27-pandas
选项运行ipython,则可以DataFrame
我还会安装py27-pyqt4
和qtconsole
,这样如果没有MacPort版本,您就可以自行安装模块。
最后,如果你是一个具有前瞻性的人并且想要使用py-pip
等人。在Python 3上,MacPorts让你满意!除py27-distribute
之外的所有上述软件包都有基于numpy
和py32
的版本,目前仅为py33
。但是,我可以使用scipy
安装它,虽然我的机器上有一大堆其他开发工具,我运行10.8.2,所以YMMV。