Установка модулей Python в OSX с помощью easy_install или setup.py install - PullRequest
2 голосов
/ 25 августа 2010

Я использую Snow Leapord 10.6 и пытаюсь установить следующие модули Python:

  1. NumPy
  2. SciPy
  3. Matplotlib

У меня проблемы, потому что OSX содержит две версии Python:

  1. / Library / 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)

Похоже, что он ищет старую версию numpy в моей директории frameworks. Я использовал импорт, чтобы увидеть, какая версия numpy python находила:

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

И, конечно же, он ищет в каталоге frameworks, хотя у меня есть новая версия:

/Library/Python/2.6/site-packages/

Я знаю, что импорт сначала выполняет поиск в вашем локальном каталоге, а затем переходит в 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, а затем проверю ревизию, я получу правильную версию:

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

Но когда я запускаю sudo python setup.py build/install Сципи не может найти правильного нагрудника, даже если установлен PYTHONPATH.

Может кто-нибудь помочь мне здесь?

Нашел эту ссылку, которая, похоже, исправляет мою проблему, но я не могу заставить ее работать:

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

Ответы [ 6 ]

2 голосов
/ 31 августа 2010

Вы пробовали установить с pip ?Кроме того, попробуйте установить scitools , который должен тянуть тех, кто вам нужен.

2 голосов
/ 25 августа 2010

Я думаю, что самый простой способ - использовать MacPorts для установки scipyВот intro , хотя вы, вероятно, хотите py26-scipy.

0 голосов
/ 08 сентября 2015

У меня была похожая проблема, только для тех же людей, у которых была такая же проблема, если у вас в системе есть два питона (скажем, python2 и python3), и вы хотите установить say numpy для новой версии (python3)) выполните следующие действия:

1 - загрузите numpy

2 - распакуйте его

3 - в терминал перейдите в разархивированную папку

4-python3setup.py установить

0 голосов
/ 23 августа 2013

Я пришел к следующему решению:

1) Не используйте версию Python, поставляемую с OSX.Apple, видимо, внесла некоторые изменения в это, и не все строит.Итак, вам нужно установить версию разработки Python.Прямо сейчас - я бы предложил установить Python 2.7.Вот сообщение в блоге о том, как это сделать:

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

2) После того, как вы установили Python, вам нужно установить библиотеки fortran для установки Scipy / Numpy.Для этого используйте homebrew (действительно ли люди все еще используют MacPorts ???)

http://brew.sh/

3) После того, как вы установили home brew, установите fortran

brew install gfortran

4) Теперь вы можете успешно установить scipy / numpy с помощью pip (Предупреждение - это займет некоторое время)

pip install -U numpy pip install -U scipy

СДЕЛАНО

0 голосов
/ 14 февраля 2012

Проблема в том, что вызываемая вами easy_install - это та, которую устанавливает Apple с фреймворками в / System, а python - / usr / bin / python

Чтобы увидеть, какой Python устанавливается, посмотрите скрипт easy_install и посмотрите, что за #! строка говорит, какой питон использовать.

Чтобы получить правильный easy_install, вам нужно установить distibute или setuptools для python в / Library (я думаю, это python.org с / usr / local / bin / python). Тогда используйте это easy_install

Однако я хотел бы отметить, что я использую решение @boocs для использования Macports althogh, если сразу после scipy и т. Д. И никакие другие библиотеки C не будут работать с другими решениями, показанными здесь;

0 голосов
/ 26 августа 2010

Разве вы не можете просто временно убрать старого пупка с дороги?

cd /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
sudo mv numpy numpy-1.2.1  # mv back if need be
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...