2 Stimmen

Python-Module auf OSX mit easy_install oder setup.py installieren

Ich habe Snow Leopard 10.6 und versuche, die folgenden Python-Module zu installieren:

  1. numpy
  2. scipy
  3. matplotlib

Ich stoße auf Probleme, weil OSX zwei Versionen von Python enthält:

  1. /Library/Python/
  2. /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?

0voto

Elm662 Punkte 601

Ich hatte ein ähnliches Problem, nur um etwas Zeit der Leute mit dem gleichen Problem zu sparen, wenn Sie zwei Python-Versionen in Ihrem System haben (zum Beispiel Python2 und Python3) und numpy für die neue Version (Python3) installieren möchten, gehen Sie diese Schritte durch:

1- numpy herunterladen

2- entpacken

3- im Terminal zum entpackten Ordner gehen

4- python3 setup.py install

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X