Я использую Snow Leapord 10.6 и пытаюсь установить следующие модули Python:
- NumPy
- SciPy
- Matplotlib
У меня проблемы, потому что OSX содержит две версии Python:
- / Library / Python /
- / 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/