如何在OS X上安装numpy和scipy?

时间:2010-12-24 16:38:28

标签: python macos numpy scipy

嘿伙计们我是Mac的新手所以请耐心等待。

我现在正在使用雪豹10.6.4。

我想安装numpy和scipy,所以我从他们的官方网站下载了python2.6,numpy和scipy dmg文件。但是,我有问题导入numpy:

Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/numpy/core/multiarray.so: no matching architecture in universal wrapper

任何人都能解释这个问题吗?>

8 个答案:

答案 0 :(得分:8)

听起来好像您可能正在尝试使用64位Python中的32位库。看起来有一个非正式的64-bit Numpy available for Snow Leopard


编辑:Python 2.6 .dmg可用here确实是32位。 (具体来说,它是一个包含i386和ppc版本的通用二进制文件)。可用的常规numpy和scipy .dmg版本here也是如此。 (我怎么知道?见下文!)所以,如果你一起使用这些版本,你应该没问题。

但是你不好 - 所以我猜你没有使用你下载的2.6 .dmg的Python版本。如果您正在运行可执行的python脚本,例如:

$ ./my-script.py

然后你可以尝试在命令行中明确指定你使用的Python。看起来像MacPython .dmg安装到/ usr / local / bin / python,所以试试:

$ /usr/local/bin/python2.6 myscript.py

有什么快乐吗?


我如何确定架构,这些.dmg文件的内容是为......构建的。

  1. 安装.dmg(即双击它以打开卷)
  2. 使用gunzip和pax将包内容解压缩到本地目录,例如:

    $ mkdir tmp
    $ cd tmp
    $ gunzip -c /Volumes/Universal\ MacPython\ 2.6/MacPython.mpkg/Contents/Packages/PythonUnixTools-2.6.pkg/Contents/Archive.pax.gz | pax
    
  3. 使用file检查包内容中的二进制文件

    $ file Versions/2.6/bin/python
    Versions/2.6/bin/python: Mach-O universal binary with 2 architectures
    Versions/2.6/bin/python (for architecture ppc): Mach-O executable ppc
    Versions/2.6/bin/python (for architecture i386):    Mach-O executable i386
    

答案 1 :(得分:7)

当我在Mac OSX 10.6.8上尝试在python2.7中新安装的numpy和scipy时,我收到了同样的错误消息。后来我发现python2.7有两个.dmg:

  • numpy的-1.6.2-py2.7-python.org-macosx10.3.dmg
  • numpy的-1.6.2-py2.7-python.org-macosx10.6.dmg

10.3.dmg中的包给了我关于multiarray.so的错误消息。 在10.6.dmg中安装后,我摆脱了这个错误信息。

答案 2 :(得分:2)

我遇到了numpy问题,直到我安装了virtualenv,现在我没有任何问题。我肯定会建议你这样做。

答案 3 :(得分:1)

对于雪豹64位我使用了下面的男人 http://blog.hyperjeff.net/?p=160 只是执行,你很高兴。 另请参阅评论(新的AMD ......)

建筑numpy一直在工作。但是对于scipy,你需要提供numpy配置文件。 安装gfortran .....

答案 4 :(得分:0)

在OS X上管理软件包的最佳方法是Fink(不是MacPorts :))。他们有很好的Python,NumPy和SciPy支持。

为什么要使用包管理器?因为你不仅会获得NumPy和SciPy,还会获得许多其他你不可避免需要的程序,所有程序都只有一个入口点(基本上是管理器的安装命令)。这比必须寻找要安装的程序的特定编译版本要方便得多。

为什么芬克?因为据说Fink比MacPorts更稳定,并且有更多的包。

答案 5 :(得分:0)

无需使用MacPorts或Fink。

使用Python 2.6 installerthis Numpy installer。我认为你需要首先安装Numpy,然后安装Scipy,一切都会自动运行。我记得有一段时间,我需要明确append the path到我的脚本顶部的site-packages目录,以便知道在哪里查看。

答案 6 :(得分:0)

如果这对某人有用,我在OSX上安装numpy的二进制文件时也遇到了问题。安装人员抱怨告诉我:

  

您无法在此卷上安装numpy 1.5.1。 numpy需要安装System Python 2.6。

长话短说:“系统Python”的意思是“来自python.org的python”和“2.6”意味着真的 2.6,而不是2.5而不是2.7。所以,去找一下numpy想要的python版本的安装程序,然后一切都很棒。

在我的第一次尝试中,我理解numpy的错误告诉我,我有一个过时的python,所以我得到了最新的版本(当时为2.7),但numpy一直在抱怨。只有在仔细阅读了消息之后,我才知道它真的想要2.6而不是任何其他版本。我删除了第一个安装(在/Library/Frameworks/Python.framework中找到)并在此之后安装了2.6。 numpy很高兴安装,一切都很好。

答案 7 :(得分:0)

我花了无数个小时浏览网页,尝试在OS X中使用各种python包。最后,我发现最简单的解决方案是完全切换到Ubuntu或从OS X中运行Virtualbox中的Ubuntu(全部免费)。

使用Ubuntu的软件包管理器apt-get,在一个简单的安装命令之后,几乎所有你想要的软件包都可以开箱即用。第一次在不到一分钟的时间内让numpy,scipy和matplotlib运行起来,这是一次巨大的冲击。

$ sudo apt-get install python-numpy python-scipy python-matplotlib

每次我这样做时,我仍然会得到一个小小的冲动。不确定你想要的模块是否有debian软件包?通常有,你可以用:

搜索python的lxml模块
$ apt-cache search lxml | grep python