簡體   English   中英

使用easy_install或setup.py install在OSX上安裝Python模塊

[英]Installing Python modules on OSX using easy_install or setup.py install

我正在運行Snow Leapord 10.6,並嘗試安裝以下python模塊:

  1. numpy的
  2. SciPy的
  3. matplotlib

我遇到了問題,因為OSX包含兩個版本的Python:

  1. /圖書館/ Python的/
  2. /System/Library/Frameworks/Python.framework/

看來當我執行以下命令時:

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

可以肯定的是,即使我有一個新版本,它也會在frameworks目錄中查找:

/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版本, /Library/Python/2.6/site-packages得到正確的版本:

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

但是當我運行sudo python setup.py build/install scipy時,即使已經設置了PYTHONPATH,也找不到正確的numpy。

有人可以幫我嗎?

找到了看起來像它可以解決我的問題的鏈接,但是我似乎無法使其正常工作:

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

我認為最簡單的方法是使用MacPorts安裝scipy。 這是一個簡介 ,盡管您可能想要py26-scipy。

您是否嘗試過使用pip安裝? 另外,嘗試安裝scitools ,它應該可以拉出您需要的那些工具。

我想出的解決方案如下。

1)不要使用OSX隨附的Python版本。 蘋果顯然對此做了一些修改,但並不是所有內容都可以構建。 因此,您需要安裝Python的開發版本。 現在-我建議安裝Python 2.7。 這是有關如何執行此操作的博客文章:

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

2)安裝Python之后,您需要安裝用於Scipy / Numpy安裝的fortran庫。 使用自制軟件來做到這一點(人們真的仍然使用MacPorts嗎?)

http://brew.sh/

3)安裝家庭釀造后,安裝fortran

釀造安裝gfortran

4)現在您可以使用pip成功安裝scipy / numpy(警告-需要一段時間)

pip install -U numpy pip install -U scipy

DONE

我也有類似的問題,如果您的系統中有兩個python(例如python2和python3),並且您想為新版本(python3)安裝說numpy,那么在同一時間遇到同樣問題的人也會遇到同樣的問題這些步驟:

1-下載numpy

2解壓縮

3-在終端中轉到解壓縮的文件夾

4-python3 setup.py安裝

您是否可以暫時將舊的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

問題是您要調用的easy_install是使用/ System中框架的Apple安裝目錄,而python是/ usr / bin / python

要查看安裝了什么python,請查看easy_install腳本並查看#! 行說要使用哪個python。

為了獲得正確的easy_install,您需要在/ Library中為python安裝distibute或setuptools(我想這是一個python.org,帶有/ usr / local / bin / python)。 然后使用該easy_install

但是我要指出的是,如果只是在scipy等之后使用Macports althogh的@boocs解決方案,並且沒有其他C庫,那么這里顯示的其他解決方案將起作用,另請參閱Enthought

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM