在OS X 10.7.4上安装NumPy for Python 3.2.3

时间:2012-05-11 20:01:20

标签: numpy python-3.x matplotlib osx-lion install

我已经尝试了几个月来为Python 3安装numpy但是尽管有大量的谷歌搜索,甚至发布到numpy邮件列表,我仍然没有更接近解决方案。

我已经设法通过MacPorts安装它,但不幸的是,似乎没有Python 3的MatPlotLib端口,这是我尝试安装numpy的主要原因...所以我有点卡住..

我在尝试从setup.py文件构建时遇到了同样的错误。我在下面列出了终端输出。

感谢您提供的任何帮助,

亚当。

这是终端输出:

lipo: can't figure out the architecture type of: /var/folders/zj/7xymy_2n3s71ws30v3v_qnlw0000gn/T//ccbRr0Hj.out
failure.
removing: _configtest.c _configtest.o
Running from numpy source directory.Traceback (most recent call last):
  File "setup.py", line 214, in <module>
    setup_package()
  File "setup.py", line 207, in setup_package
    configuration=configuration )
  File "/Users/adammcnicol/Downloads/numpy-1.6.2rc1/build/py3k/numpy/distutils/core.py", line 186, in setup
    return old_setup(**new_attr)
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/distutils/dist.py", line 917, in run_commands
    self.run_command(cmd)
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/distutils/dist.py", line 936, in run_command
    cmd_obj.run()
  File "/Users/adammcnicol/Downloads/numpy-1.6.2rc1/build/py3k/numpy/distutils/command/build.py", line 37, in run
    old_build.run(self)
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/distutils/command/build.py", line 126, in run
    self.run_command(cmd_name)
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/distutils/dist.py", line 936, in run_command
    cmd_obj.run()
  File "/Users/adammcnicol/Downloads/numpy-1.6.2rc1/build/py3k/numpy/distutils/command/build_src.py", line 152, in run
    self.build_sources()
  File "/Users/adammcnicol/Downloads/numpy-1.6.2rc1/build/py3k/numpy/distutils/command/build_src.py", line 169, in build_sources
    self.build_extension_sources(ext)
  File "/Users/adammcnicol/Downloads/numpy-1.6.2rc1/build/py3k/numpy/distutils/command/build_src.py", line 328, in build_extension_sources
    sources = self.generate_sources(sources, ext)
  File "/Users/adammcnicol/Downloads/numpy-1.6.2rc1/build/py3k/numpy/distutils/command/build_src.py", line 385, in generate_sources
    source = func(extension, build_dir)
  File "numpy/core/setup.py", line 410, in generate_config_h
    moredefs, ignored = cocache.check_types(config_cmd, ext, build_dir)
  File "numpy/core/setup.py", line 41, in check_types
    out = check_types(*a, **kw)
  File "numpy/core/setup.py", line 271, in check_types
    "Cannot compile 'Python.h'. Perhaps you need to "\
SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev|python-devel.

5 个答案:

答案 0 :(得分:11)

好吧,我终于设法安装了 NumPy 。不确定这是最好的方法,但似乎有效!

首先,我需要安装分发

  1. curl http://python-distribute.org/distribute_setup.py | python3
  2. 然后我安装了 pip

    1. curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python3
    2. 之后,我必须将 pip 打开到我的系统路径上(同样可能有更好的方法):

      1. 打开终端
      2. 输入以下内容(单行):
        • sudo ln -s /Library/Frameworks/Python.framework/Versions/3.2/bin/pip /usr/local/bin
      3. 安装分发后,我安装了 Nose ,这是NumPy需要进行测试的东西:

        1. 同样,在终端中键入以下内容:
          • pip install nose
        2. 现在我需要确保我拥有最新版本的 Xcode

          1. AppStore 安装最新版本的 Xcode
          2. 如果您还有一个/Developer文件夹,请将其重命名为Developer-old(不确定这是否会在以后对我造成问题)
          3. 打开终端并创建一个符号链接到AppStore版本的Xcode(单行):
            • sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer /Developer
          4. 所有这些都是时候安装 NumPy

            1. http://sourceforge.net/projects/numpy/files/NumPy/1.6.2rc1/
            2. 下载 NumPy 来源
            3. 取消归档文件
            4. 再次打开终端
              • cd到通过取消归档文件创建的目录中,例如
                • cd /Users/username/Downloads/numpy-1.6.2rc1
            5. 输入以下终端以更改用于构建 NumPy 的编译器:
              • export CC=clang
              • export CXX=clang
              • export FFLAGS=-ff2c
              • export LDSHARED='clang -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -g'(这是一行)
              • python3 setup.py build(这可能需要一段时间)
              • python3 setup.py install
            6. 好的,假设没有错误 NumPy 应该安装。是时候测试一下了:

              1. 打开 IDLE
              2. Python Shell 类型中:
                • import numpy
                • numpy.test('full')
              3. 这将测试 NumPy 我收到的 Python 3.2.3 的最终结果是:
                • <nose.result.TextTestResult run=3192 errors=0 failures=1>
              4. 所以除了一个测试之外, NumPy 安装都会通过所有测试,这似乎相当不错。我还没有机会看到是否正常工作,因为我仍在努力安装 matplotlib ......

                希望这些说明对某人有用!

                亚当。

答案 1 :(得分:2)

我正在使用Python 3.3和OS X 10.7,我使用比上面更简单的方法安装了numpy。我在这里张贴,以防它可以帮助别人。

请按照以下步骤操作:

  • 从github上的numpy下载zip文件,然后将其解压缩到任意位置。
  • 打开终端并cd到目录
  • 输入命令python3 setup.py build --fcompiler=gnu95(需要gfortran。输入gfortran -v以查看是否已获得它,我已获得版本4.6.2)
  • 输入python3 setup.py install

这就是我所需要的一切。运行numpy.test('full')会给我一些错误,但是:http://pastebin.com/5XF0qAe5

我不知道我将会遇到什么样的错误。

答案 2 :(得分:0)

上面的答案对我很有帮助,除了你提到这是OS X 10.7(同样在这里)所以我的构建命令确实抱怨了这一行:

  • export LDSHARED ='clang -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -g'(这是单行)

所以,我只是将其改为10.7并且工作正常。显然,对于OS X 10.7,/ Developer / SDKs /目录包含MacOSX10.7.sdk和MacOSX10.8.sdk。谢谢你的回答!

答案 3 :(得分:0)

我已经多次回到这个答案了,如果你使用的是10.8,你需要做一些事情才能使它工作(但我认为你不需要LDSHARED部分)。 / p>

  1. 从Apple安装XCode以及命令行工具(这可以为您提供所需的编译器)。
  2. 将环境变量设置为指向clang并使用easy_install(NOT distribute)进行安装,此行将起作用:

    CC = clang CXX = clang FFLAGS = -ff2c easy_install numpy

  3. 尝试同时安装其他软件包。 numpy安装可能会退出声明错误,但通常它设法安装自己(例如,如果你尝试安装在virtualenv中,这可能会发生)。

答案 4 :(得分:0)

对我来说,我从他们的网站安装python3然后安装numpy,

pip3 install numpy

它有效!