it-swarm.com.de

SciPy baut/installiert Mac Osx

Ich habe NumPy erfolgreich auf meinem Mac os x für Python 2.7.3 installiert/installiert. Nun möchte ich auch scipy installieren/installieren. Ich habe es von git hub heruntergeladen . In das Verzeichnis gegangen. Ran python setup.py build und es schien zu funktionieren, bis es auf diesen Fehler stieß:

customize Gnu95FCompiler
Could not locate executable gfortran
Could not locate executable f95
customize NAGFCompiler
customize AbsoftFCompiler
Could not locate executable f90
Could not locate executable f77
customize IBMFCompiler
Could not locate executable xlf90
Could not locate executable xlf
customize IntelFCompiler
Could not locate executable ifort
Could not locate executable ifc
customize GnuFCompiler
Could not locate executable g77
customize G95FCompiler
Could not locate executable g95
customize PGroupFCompiler
Could not locate executable pgfortran
don't know how to compile Fortran code on platform 'posix'
building 'dfftpack' library
error: library dfftpack has Fortran sources but no Fortran compiler found

Ich dachte, ich hätte Fortran für NumPy installiert ... nicht wahr? Wie würde ich es herunterladen?

33
Megan

Ihr Problem ist, dass Sie einen Fortran-Compiler installieren müssen, um scipy zu erstellen.

Wenn Sie bereits ein numpy haben, das mit deaktivierter Fortran-Unterstützung erstellt wurde, müssen Sie es möglicherweise ersetzen. Einige der vorinstallierten Python-Versionen von Apple haben einen solchen numpy-Build vorinstalliert.


Der einfachste Weg Fortran zu bekommen ist mit Homebrew . Wie in den Dokumenten heißt, müssen Sie zuerst Xcode und seine Befehlszeilentools installieren. (Die Art und Weise, wie die Befehlszeilentools installiert werden, ändert sich mit fast jeder Hauptversion von Xcode. Eine aktuelle Erklärung finden Sie in den verlinkten Dokumenten.) Installieren Sie dann Homebrew. Die Installations-URL hat sich einige Male geändert. Lesen Sie die Homebrew-Homepage oder die Installationsanweisungen ( http://brew.sh/ ), aber es wird ungefähr so ​​aussehen:

Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Dann:

brew install gcc

(Beachten Sie, dass gfortran bis zu einer gewissen Zeit im Jahr 2014 ein anderes Rezept als gcc war, daher lautete der Befehl brew install gfortran. Wenn Sie dies jetzt versuchen, wird die Fehlermeldung "GNU Fortran ist jetzt Bestandteil von" angezeigt GCC und kann installiert werden mit: brew install gcc ".)


Sie möchten wirklich pip verwenden, um scipy zu installieren. Wenn Sie das nicht haben, holen Sie es sich zuerst. Apples vorinstalliertes Python, zumindest in 10.7 und 10.8, enthält easy_install, jedoch nicht pip. Der einfachste Weg, dies zu tun, ist:

Sudo easy_install pip

Möglicherweise möchten Sie jedoch ein virtualenv anstelle einer globalen Installation verwenden (in diesem Fall möchten Sie auch das Sudo in den folgenden Befehlen entfernen).

Nachdem Sie jetzt gfortran und pip haben, müssen Sie nur noch Folgendes tun:

Sudo pip install --upgrade numpy
Sudo pip install scipy

Vorsichtsmaßnahmen:

  • Die obigen Anweisungen gelten für Apples vorinstallierte Version (en) von Python. Wenn Sie eine andere Version von Python verwenden, sollten Sie dies wirklich nicht tun. Das Synchronisieren der Pfade, installierten Pakete usw. ist ein Albtraum. Die Ausnahme hiervon ist, wenn Sie eine Python 3.x-Version möchten. In diesem Fall ist die Installation von python.org oder Homebrew durchaus sinnvoll. Es wird keine Kollisionen geben, da python, pip2.7 usw. für Apples Python bestimmt sind. python3, pip3.3 usw. für die 3.x-Version.

  • Wenn Sie bereits pip haben, aber befürchten, dass es veraltet sein könnte, pip install --upgrade pip. (Abgesehen von den Vorteilen in Bezug auf Sicherheit und Robustheit können Sie dadurch viel Zeit sparen, da Sie für einige der wissenschaftlichen Stapelmodule oder andere Module mit Binärrädern kompatibel sind.)

  • Bei den meisten nicht von Apple stammenden Python -Installationen (und vielleicht sogar bei Apple in 10.9 oder 10.10; ich habe es nicht überprüft) sollten Sie nicht benutze easy_install um pip zu installieren. Folgen Sie den pip Installationsanweisungen . Aber stellen Sie zuerst sicher, dass Sie es nicht bereits haben.

    • Wenn Sie virtualenv/venv verwenden, enthält Ihre virtuelle Umgebung bereits pip.
    • Python 3.4 oder höher kann (und wird, wenn es von einem python.org-Installationsprogramm stammt) ein pip-Bootstrap enthalten. Wenn Ihr 3.4+ pip noch nicht hat, möchten Sie es möglicherweise python -m ensurepip installieren.
    • Einige Installationen von Drittanbietern, wie Homebrew oder ActiveState, enthalten pip.
  • Für Python 3.3 oder höher möchten Sie möglicherweise das integrierte venv anstelle von virtualenv verwenden.

  • Wenn Sie MacPorts, Fink, gentoo-alt usw. verwenden, sollten Sie das Paket scipy installieren, das mit Ihrem Paketmanager geliefert wird, und es wird alles hineinziehen, was es benötigt (möglicherweise sogar das Neuerstellen von Python und GCC).

  • Binäre Installationen von Drittanbietern wie Enthought und ActiveState enthalten möglicherweise bereits scipy und alles, was Sie sonst noch benötigen. Wenn nicht, sind die Anweisungen im Grunde die gleichen wie oben, aber Sie müssen raten, welche Schritte zu überspringen oder zu befolgen sind, ob zu Sudo usw.


Wenn Sie eine Nicht-Apple-Version von Python 2.7 verwenden und die PATH-Probleme vermeiden möchten, müssen Sie zwei Dinge tun:

Installieren Sie zunächst niemals Python Pakete, die Skripte oder Binärdateien enthalten (einschließlich pip selbst), in mehr als einem Python. Wenn Sie beispielsweise ipython für Apple 2.7 und Homebrew 2.7 installieren, versuchen beide, Skripts mit den Namen /usr/local/bin/ipython und /usr/local/bin/ipython-2.7 zu erstellen. Wenn Sie Glück haben, schlägt eine Installation fehl. Andernfalls sind beide erfolgreich, einer überschreibt den anderen und Sie haben keine Möglichkeit, die überschriebene Version auszuführen.

Stellen Sie zweitens sicher, dass der Pfad zu den Skripten und Binärdateien des alternativen Python vor dem von Apple im PATH steht. Je nachdem, welches alternative Python Sie installiert haben und welche Anweisungen Sie befolgt haben, kann dies sein:

  • /usr/local/bin
  • /Library/Frameworks/Python.framework/Versions/2.7/bin
  • /usr/local/share/python2.7/bin
  • /usr/local/Cellar/python/2.7.3/bin
  • etwas anderes

Unabhängig vom Pfad müssen Sie Ihre PATH-Variable bearbeiten.

Wenn Sie sich auf GUI-Apps (und LaunchAgents usw.) auswirken möchten, gibt es anscheinend keine unterstützte Möglichkeit mehr, dies zu tun, aber das veraltete QA1067 scheint in Lion weiterhin zu funktionieren. Es ist auch das, was die Homebrew FAQ und Python FAQ vorschlagen.

Wenn Sie sich nur für Befehlszeilensitzungen interessieren (sowohl für Terminal.app als auch für Remote-ssh), können Sie stattdessen einfach die Standard-Unix-Aktion ausführen und die entsprechende Profildatei bearbeiten. Welche Profildatei geeignet ist, hängt davon ab, worauf Sie sich auswirken möchten. (Alle Benutzer oder nur ein Benutzer? Bash oder eine Shell? Und so weiter.) Wenn Sie nicht wissen, welche Sie möchten, sollten Sie wirklich etwas recherchieren. Wenn du nicht lernen willst, mache einfach ~/.profile und beschwere dich dann nicht, wenn es nicht das ist, was du wolltest.

In jedem Fall müssen Sie sicherstellen, dass der entsprechende Pfad vor /usr/bin im PATH steht. So könnten Sie beispielsweise ~/.profile Folgendes hinzufügen:

PATH=/usr/local/bin:$PATH
export PATH

(Sie müssen natürlich entweder eine neue Terminal-Shell erstellen oder das Skript als Quelle angeben, bevor es wirksam wird.)

Wenn Sie homebrew verwenden, sagt brew doctor, ob Sie es richtig verstanden haben.

90
abarnert

Ihr aktuelles Problem war offenbar nur ein zeitweiliger Download-Fehler von Sourceforge:

curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume. Error: Download failed: downloads.sf.net/project/machomebrew/Bottles/…

Homebrew sollte diesen Fehler automatisch wiederherstellen, wenn Sie brew install gfortran erneut versuchen. Also, das ist das erste, was man versuchen sollte.

Wenn dies nicht funktioniert, prüfen Sie, ob brew doctor Probleme findet, und brew install -d gfortran, um zu sehen, wo die teilweise heruntergeladene Datei gespeichert wird, sodass Sie sie manuell löschen und es erneut versuchen können.

Wenn alles andere fehlschlägt, können Sie erzwingen, dass Sie die Flasche nicht verwenden, indem Sie --build-from-source verwenden. Natürlich dauert das Bauen von der Quelle viel länger als das Installieren einer binären Flasche, es sollte jedoch dasselbe Ergebnis erzielt werden.

3
abarnert

Ab dem 20.05.2014 wird Fortran als Teil von gcc installiert, wenn Sie brew verwenden. Es ist kein separates Fortran-Paket erforderlich. Folgendes funktionierte für mich, um numpy zu installieren:

  1. brew installieren, gemäß der Antwort von Abamert (oder siehe http://brew.sh/ )
  2. gcc installieren (brew install gcc)
  3. vergewissern Sie sich, dass der GCC von brew korrekt ist (which gcc sollte auf/usr/local/bin/gcc zeigen)
  4. export ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future (siehe Probleme mit pip install numpy - RuntimeError: Defekte Toolchain: Ein einfaches C-Programm kann nicht verlinkt werden )
  5. pip install numpy
3
Mark Chackerian

Ich denke nicht, dass dieses Problem zu kompliziert ist.

1) Installieren Sie das Rohr

cd /Library/Frameworks/Python.framework/Versions/ln -s 2.7 Aktuell

cd /usr/binrm -f python Ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python-python

2) Laden Sie Egg von https://pypi.python.org/pypi/setuptools#files Sudo sh setuptools-0.6c11-py2.7.Egg

3) Laden Sie einfach den gfotran von diesem Link herunter und installieren Sie ihn: http://r.research.att.com/tools/

4) Danach müssen Sie Folgendes eingeben: Sudo pip install -U scipy Sudo pip install -U numpy Sudo pip install -U matplotlib

Hoffentlich sollten Sie alles haben, was Sie haben möchten.

2
BITTNT

Ich bin mit den folgenden Schritten auf das gleiche Problem gestoßen:
1. brauen Sie installieren Gfortran
2. pip install scipy 

dann ist es ja gut.

1
rchardzhu

Ich hatte gfortran installiert und die Binärdatei wargfortran-4.2. Jedes Mal, wenn ich versuchte, SciPy zu installieren, konnte der Compiler nicht gefunden werden, da versucht wurde,gfortranzu verwenden.

Was ich getan habe, war ein Symlink vongfortran-4.2zugfortranzu erstellen.

So finden Sie, wo Sie den Symlink-Lauf erstellen sollten:

$ which gfortran-4.2
/usr/local/bin/gfortran-4.2

Dann symlink es:

ln -s /usr/local/bin/gfortran-4.2 /usr/local/bin/gfortran
1
André Augusto

Ich denke, deine Version von Xcode und OSX ist von Bedeutung . Ich hatte Xcode: 6.4 und Os X 10.11.1 und erhielt immer noch die gleichen Fehlermeldungen (Gfortran konnte nicht gefunden werden usw.). Ich habe viele Dinge ausprobiert, einschließlich der umfassenden Antwort von @abarnert, aber die Lösung für mich wurde Xcode (auf 7.1.1) aktualisiert.

0
dhltp

Für OSX-Yosemite-Versionen und möglicherweise auch ältere OSX-Versionen sollten Sie den Fortran-Compiler herunterladen und installieren, bevor Sie pip install scipy ausführen. Um den neuesten Fortran-Compiler herunterzuladen, klicken Sie auf den folgenden Link:

https://gcc.gnu.org/wiki/GFortranBinaries#MacOS

0
Masum