Ich habe Snow Leopard 10.6 und versuche, die folgenden Python-Module zu installieren:
- numpy
- scipy
- matplotlib
Ich stoße auf Probleme, weil OSX zwei Versionen von Python enthält:
- /Library/Python/
- /System/Library/Frameworks/Python.framework/
Es scheint, dass die Module mit dem folgenden Befehl installiert werden:
sudo easy_install -U {module}
, die Module werden im Verzeichnis site-packages hier installiert:
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
Aber wenn ich versuche, scipy zu installieren, erhalte ich den folgenden Fehler:
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
(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)
Es scheint also, dass es in meinem Frameworks-Verzeichnis nach einer älteren Version von numpy sucht. Ich habe import verwendet, um herauszufinden, welche Version von numpy Python findet:
python -c 'import numpy;print numpy.__version__'
1.2.1
Und tatsächlich sucht es im Frameworks-Verzeichnis, obwohl ich eine neue Version in folgendem Verzeichnis habe:
/Library/Python/2.6/site-packages/
Ich weiß, dass import zuerst in Ihrem lokalen Verzeichnis sucht, dann PYTHONPATH durchgeht und schließlich sys.path betrachtet. Also habe ich das überprüft, und ich habe PYTHONPATH derzeit nicht festgelegt und hier ist mein 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
Wenn ich PYTHONPATH auf /Library/Python/2.6/site-packages
ändere und dann die numpy-Version überprüfe, erhalte ich die richtige Version:
bash-3.2$ python -c 'import numpy; print numpy.__version__'
2.0.0.dev8661
Aber wenn ich sudo python setup.py build/install
ausführe, kann scipy das richtige numpy nicht finden, obwohl PYTHONPATH festgelegt wurde.
Kann mir bitte jemand helfen?
Habe diesen Link gefunden, der aussieht, als ob er mein Problem löst, aber ich kann ihn anscheinend nicht zum Laufen bringen:
http://andreasjacobsen.com/2008/10/10/using-python-setuptools-on-the-mac/
0 Stimmen
Hast du daran gedacht, PYTHONPATH=/Library/... zu exportieren? Was sagt sudo numpyversion -- eine 1-Zeilen-Datei mit python -c '... print numpy.__version__' --?
0 Stimmen
Wenn ich nur /Library/ exportiere, gibt es 1.2.1 zurück, was die Version ist, die im OSX-Framework existiert. Wenn ich exportiere: export PYTHONPATH='/Library/Python/2.6/site-packages/' gibt es 2.00 zurück, die neuere installierte Version, die in /Library/Python/2.6/site-packages' existiert. Das Problem ist, wenn ich python setup.py install ausführe, um das scipy-Modul zu installieren, ignoriert es den PYTHONPATH und das Import numpy gibt immer noch 1.2.1 zurück. Ich habe keine Ahnung, warum das passiert?