使用easy_install或setup.py安装在OSX上安装Python模块

时间:2010-08-25 13:07:58

标签: python numpy scipy

我正在运行Snow Leapord 10.6并尝试安装以下python模块:

  1. numpy的
  2. SciPy的
  3. matplotlib
  4. 我遇到了问题,因为OSX包含两个版本的Python:

    1. /库/ Python的/
    2. /System/Library/Frameworks/Python.framework /
    3. 当我执行以下命令时似乎:

      sudo easy_install -U {module},模块正在这里安装到site-packages目录:

      bash-3.2$ ls -al /Library/Python/2.6/site-packages/
      total 688
      drwxrwxr-x  12 root  admin     408 Aug 24 23:26 .
      drwxrwxr-x   3 root  admin     102 Feb 11  2010 ..
      -rw-rw-r--   1 root  admin     119 Feb 11  2010 README
      -rw-r--r--   1 root  admin     267 Aug 24 19:03 easy-install.pth
      drwxr-xr-x   5 root  admin     170 Aug 24 10:42 nose-0.11.4-py2.6.egg
      drwxr-xr-x  38 root  admin    1292 Aug 24 15:35 numpy
      -rw-r--r--   1 root  admin    1618 Aug 24 15:35 numpy-2.0.0.dev8661-py2.6.egg-info
      drwxr-xr-x  16 root  admin     544 Aug 24 19:07 numscons
      drwxr-xr-x   4 root  admin     136 Aug 24 19:03 numscons-0.10.1-py2.6.egg
      -rw-r--r--   1 root  admin     265 Aug 24 19:07 numscons-0.12.0dev-py2.6.egg-info
      -rw-r--r--   1 root  admin  333959 Aug 23 11:51 setuptools-0.6c11-py2.6.egg
      -rw-r--r--   1 root  admin      30 Aug 23 11:51 setuptools.pth
      

      但是,当我尝试安装scipy时,我看到以下错误:

          config = setup_module.configuration(*args)
        File "scipy/setup.py", line 20, in configuration
          config.add_subpackage('special')
        File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/numpy/distutils/misc_util.py", line 851, in add_subpackage
          caller_level = 2)
        File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/numpy/distutils/misc_util.py", line 834, in get_subpackage
          caller_level = caller_level + 1)
        File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/numpy/distutils/misc_util.py", line 766, in _get_configuration_from_setup_py
          ('.py', 'U', 1))
        File "scipy/special/setup.py", line 14, in <module>
          (numpy.__version__, numpy.__file__))
      ValueError: numpy >= 1.4 is required (detected 1.2.1 from /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/numpy/__init__.pyc)
      

      所以它似乎正在我的frameworks目录中寻找旧版本的numpy。我使用import来查看numpy python正在找到哪个版本:

       python -c 'import numpy;print numpy.__version__'
      1.2.1
      

      果然,它正在查看框架目录,即使我有一个新版本:

      /Library/Python/2.6/site-packages/

      我知道import首先搜索你的本地目录,然后进入PYTHONPATH,最后查看sys.path。所以我检查了这些,我现在没有设置PYTHONPATH,这是我的sys.path:

      /Library/Python/2.6/site-packages/setuptools-0.6c11-py2.6.egg
      /Library/Python/2.6/site-packages/nose-0.11.4-py2.6.egg
      /Library/Python/2.6/site-packages/numscons-0.10.1-py2.6.egg
      /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip
      /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
      /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin
      /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac
      /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages
      /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
      /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk
      /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old
      /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
      /Library/Python/2.6/site-packages
      /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
      /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode
      

      如果我将PYTHONPATH更改为/Library/Python/2.6/site-packages,然后检查numpy版本,我会得到正确的版本:

      bash-3.2$ python -c 'import numpy; print numpy.__version__'
      2.0.0.dev8661
      

      但是当我跑sudo python setup.py build/install时,scipy找不到合适的numpy,即使已经设置了PYTHONPATH。

      有人可以帮助我吗?

      发现此链接看起来像是解决了我的问题,但我似乎无法让它工作:

      http://andreasjacobsen.com/2008/10/10/using-python-setuptools-on-the-mac/

6 个答案:

答案 0 :(得分:2)

我认为最简单的方法是使用MacPorts来安装scipy。这是一个intro,虽然你可能想要py26-scipy。

答案 1 :(得分:2)

您是否尝试使用pip进行安装?另外,请尝试安装scitools,这应该提取您需要的内容。

答案 2 :(得分:0)

你能暂时将旧的numpy移开吗?

cd /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
sudo mv numpy numpy-1.2.1  # mv back if need be

答案 3 :(得分:0)

问题是你调用的easy_install是用于在/ System中使用框架的Apple安装的那个,而python是/ usr / bin / python

要查看安装了什么python,请查看easy_install脚本并查看#! line说要使用哪个python。

要获得正确的easy_install,您需要在/ Library中为python安装distibute或setuptools(我猜这是一个带有/ usr / local / bin / python的python.org)。然后使用easy_install

但我会注意到,我确实使用@boocs使用Macports althogh的解决方案,如果只是在scipy等之后,没有其他C库,那么此处显示的其他解决方案将起作用,也请参阅Enthought

答案 4 :(得分:0)

我想出的解决方案如下。

1)不要使用预先安装OSX的Python版本。 Apple显然已对此进行了一些修改,而不是所有内容都进行了修改。因此,您需要安装Python的开发版本。现在 - 我建议安装Python 2.7。这是一篇关于如何做的博客文章:

https://medium.com/cs-math/a3eb146ebfb5

2)安装Python后,需要为Scipy / Numpy安装安装fortran库。使用自制软件(人们真的还在使用MacPorts吗?)

http://brew.sh/

3)安装完家酿啤酒后,安装fortran

  

brew install gfortran

4)现在你可以用pip成功安装scipy / numpy(警告 - 需要一段时间)

pip install -U numpy pip install -U scipy

DONE

答案 5 :(得分:0)

我有类似的问题,就像同一个问题的人一样,如果你的系统中有两个蟒蛇(比如python2和python3),你希望为新版本安装说numpy(python3) )完成以下步骤:

1-下载numpy

2解压缩

终端中的

3-转到解压缩文件夹

4-python3 setup.py install