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

goh*_*goh 6 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
Run Code Online (Sandbox Code Playgroud)

任何人都可以解决这个问题吗?>

Sim*_*ker 8

听起来好像你可能试图使用64位Python的32位库.看起来有一个非官方的64位Numpy可用于Snow Leopard.


编辑:这里提供的Python 2.6 .dmg 确实是32位.(具体来说,它是一个包含i386和ppc版本的通用二进制文件).同样是普通numpy的和可用的SciPy的的.dmg版本的真正在这里.(我怎么知道?见下文!)所以,如果你一起使用这些版本,你应该没问题.

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

$ ./my-script.py
Run Code Online (Sandbox Code Playgroud)

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

$ /usr/local/bin/python2.6 myscript.py
Run Code Online (Sandbox Code Playgroud)

有什么喜悦?


我如何确定架构,这些.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
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)


Po *_* C. 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中安装一个后,我摆脱了这个错误信息.