Python 如何在OSX上安装numpy和scipy?

Python 如何在OSX上安装numpy和scipy?,python,macos,numpy,scipy,Python,Macos,Numpy,Scipy,我是麦克的新手,所以请容忍我 我现在正在使用雪豹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

我是麦克的新手,所以请容忍我

我现在正在使用雪豹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

有人能解释一下这个问题吗?

听起来好像您正在尝试使用64位Python中的32位库。看来有个非官方的


编辑:可用的Python2.6.dmg实际上是32位的。(特别是,它是一个包含i386和ppc版本的通用二进制文件)。可用的常规numpy和scipy.dmg版本也是如此。(我怎么知道?见下文!)因此,如果您同时使用这些版本,您应该不会有问题

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

$ ./my-script.py
然后,您可以尝试在命令行上显式指定正在使用的Python。看起来MacPython.dmg安装到/usr/local/bin/python,请尝试:

$ /usr/local/bin/python2.6 myscript.py
有什么乐趣吗


我是如何确定这些.dmg文件的内容所针对的体系结构的

  • 装入.dmg(即双击它以打开卷)
  • 使用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
    
  • 使用
    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
    

  • 在安装到VirtualNV之前,我在numpy方面一直存在问题,现在我没有任何问题。我绝对建议您试试。

    在OS X上管理软件包的最佳方法是(而不是MacPorts:))。它们具有良好的Python、NumPy和SciPy支持

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


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

    无需使用MacPorts或Fink


    使用和。我认为你需要先安装Numpy,然后再安装,一切都会自动神奇地工作。我记得有一段时间,我需要显式地访问Python脚本顶部的site packages目录,以便知道在何处查找 只要执行就可以了。 另外请看评论(新AMD…)

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

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

    无法在此卷上安装numpy 1.5.1。numpy需要安装系统Python 2.6

    长话短说:“系统Python”的意思是“Python from”,而“2.6”的意思实际上是2.6,而不是2.5和2.7。所以,去找numpy想要的python版本的安装程序,然后一切都很好


    在我第一次尝试时,我理解numpy的错误是告诉我我有一个过时的python,所以我得到了最新的版本(当时是2.7),但numpy仍然在抱怨。只是在仔细阅读了这条消息之后,我才明白它真正想要的是2.6,而不是任何其他版本。我破坏了第一次安装(位于
    /Library/Frameworks/Python.framework
    ),然后安装了2.6。最后,numpy很高兴安装,一切都很好。

    在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中安装了一个之后,我消除了这个错误消息。

    我花了无数个小时浏览网页,试图让各种python软件包在OS X中工作。最后,我发现最简单的解决方案是要么完全切换到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
    

    实际上,在OS X上管理软件包的最佳方法是(而不是Fink或MacPorts:)——不幸的是,这两种方法目前都没有列出NumPy now SciPy.:)哇!我不知道在OSX软件包管理器上有这样的竞争。(这是我第一次投反对票!)你知道Fink和MacPorts是否可以不吵架地同居,这样我就可以玩一玩了吗?@Josh:我想你可以同时安装MacPorts和Darwin软件包:Fink将所有东西都安装在专用的/sw目录中,据我所知,MacPorts和Fink软件包之间没有直接冲突,因为默认情况下,它们分别安装在不同的根目录下,
    /opt/local/
    /sw
    。但是,在其中一个或两个版本中都有一些软件包,它们的普通安装过程试图通过在MacPorts和Fink默认位置查找第三方库来实现智能化,并且MacPorts或Fink可能没有对这些软件包进行自定义以防止出现这种情况,这可能导致包使用错误包管理器的库不匹配,并且由于不兼容的构建选项(ARCH等)而无法执行。。。。对于