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?

2voto

Michael Kuhn Punkte 7515

Ich denke, der einfachste Weg wäre, MacPorts zu verwenden, um scipy zu installieren. Hier ist eine Einführung, obwohl du wahrscheinlich py26-scipy willst.

2voto

ustun Punkte 6723

Haben Sie versucht, mit pip zu installieren? Versuchen Sie auch, scitools zu installieren, das die benötigten Pakete herunterladen sollte.

1 Stimmen

Auch, wenn alles fehlschlägt, versuchen Sie, Python über Brew zu installieren. wiki.github.com/mxcl/homebrew/the-brew-command Es ist wie MacPorts, aber neuer und einfacher.

0voto

denis Punkte 20177

Kannst du das alte numpy nicht einfach kurzzeitig aus dem Weg räumen?

cd /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
sudo mv numpy numpy-1.2.1  # bei Bedarf zurück verschieben

0 Stimmen

Ich hatte das gleiche Problem und das scheint es für mich gelöst zu haben. Ich habe jetzt einen anderen Fehler, weil ich keinen Fortran-Compiler habe. Ich arbeite daran, das so schnell wie möglich zu beheben.

0 Stimmen

Ich habe ein gfortran von dieser Seite heruntergeladen: r.research.att.com/tools und "pip install scipy" funktioniert jetzt einwandfrei!

1 Stimmen

Bitte ändern Sie nichts in /System, da Apple es zurückändern wird oder einige Apple-Skripte kaputt gehen könnten (obwohl dies bei numpy unwahrscheinlich ist)

0voto

mmmmmm Punkte 31394

Das Problem ist, dass das von Ihnen aufgerufene easy_install für die Apple-Installation mit den Frameworks in /System ist und das Python in /usr/bin/python

Um zu sehen, welches Python installiert wird, sehen Sie sich das easy_install-Skript an und sehen Sie, was die #!-Zeile sagt, welches Python verwendet werden soll.

Um das richtige easy_install zu erhalten, müssen Sie distibute oder setuptools für das Python in /Library installieren (ich würde vermuten, dass dies ein python.org-Installation mit /usr/local/bin/python ist). Verwenden Sie dann dieses easy_install.

Ich würde jedoch darauf hinweisen, dass ich die Lösung von @boocs verwende, Macports zu verwenden. Wenn Sie jedoch nur nach scipy usw. suchen und keine anderen C-Bibliotheken benötigen, funktionieren auch andere hier gezeigte Lösungen. Siehe auch Enthought

0voto

josephmisiti Punkte 9572

Die Lösung, auf die ich gekommen bin, lautet wie folgt.

1) Verwenden Sie nicht die Version von Python, die auf OSX vorinstalliert ist. Apple hat anscheinend einige Modifikationen daran vorgenommen und nicht alles funktioniert reibungslos. Daher müssen Sie eine Entwicklerversion von Python installieren. Derzeit empfehle ich die Installation von Python 2.7. Hier finden Sie einen Blogbeitrag dazu:

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

2) Nachdem Sie Python installiert haben, müssen Sie die Fortran-Bibliotheken für die Scipy/Numpy-Installation installieren. Verwenden Sie Homebrew dafür (Verwenden die Leute wirklich immer noch MacPorts ???)

http://brew.sh/

3) Nachdem Sie Homebrew installiert haben, installieren Sie Fortran

brew install gfortran

4) Jetzt können Sie Scipy/Numpy erfolgreich mit Pip installieren (Achtung - es dauert eine Weile)

pip install -U numpy pip install -U scipy

FERTIG

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