Soll ich brew oder pip für die Installation von matplotlib verwenden?

8

Ich benutze Mac OSX 10.8, vorher habe ich Macports benutzt, aber ich habe auf brew umgeschaltet.

%Vor%

Also meine Frage ist einfach. Soll ich brew oder pip für die Installation von matplotlib verwenden? Gibt es einen Unterschied und was?

Mein Ziel ist es, Pandas, Ipython Notebook und SimpleCV in Betrieb zu nehmen.

    
WebOrCode 03.06.2013, 11:06
quelle

4 Antworten

11

Wenn Gebräu wie MacPorts funktioniert, gehen Sie am besten durch. Hier sind ein paar Gründe warum:

  • Wenn Sie Ihren Paketmanager (MacPorts, brew, ...) verwenden, um später weitere Programme zu installieren, die von Matplotlib abhängen, installiert der Paketmanager es < stark> unabhängig .

  • Wenn Sie ein Python-Paket über pip installieren und pip es in Ihrer Paket-Manager-Struktur (MacPorts, brew, ...) installiert, könnte sich der Paket-Manager beschweren . Zum Beispiel möchte MacPorts pip-installierte Pakete nicht als Vorsichtsmaßnahme löschen, damit die Kompilierung aufhört, wenn MacPort feststellt, dass jemand auf seinem Rasen gegangen ist. Die beste Methode zur Installation von Python-Paketen besteht darin, zuerst zu überprüfen, ob sie von Ihrem Paketmanager bereitgestellt werden, und sie dann nur mit pip zu installieren, falls dies nicht der Fall ist.

  • Die Kompilierung mit pip schlägt manchmal fehl wo ein Paketmanager (MacPorts, ...) kein Problem hat: Paketmanager sind einfach mächtiger und allgemeiner Werkzeuge (sie spielen gut mit den erforderlichen kompilierten Bibliotheken, z Instanz).

  • Ich würde nicht empfehlen, eine separate Verteilung von Matplotlib zu verwenden , aus den gleichen Gründen: Jedes Programm von brew, das von Matplotlib abhängt, installiert es trotzdem. Wenn Sie stattdessen ein solches Programm ohne Ihren Paketmanager installieren möchten, ist es im Allgemeinen schwierig, es mit einer bestimmten Verteilung von Matplotlib arbeiten zu lassen (sie benötigen möglicherweise Bibliotheken, die von oben installiert werden müssen, usw.).

    >

Zusammenfassend würde ich empfehlen, ein System für alles zu verwenden (brew, da dies das ist, was Sie gewählt haben) und pip für Dinge, die dieses System nicht bietet (stellen Sie sicher, dass Der Pip, den Sie verwenden, entspricht dem, wohin Sie gehen wollen: die Python-Bibliothek Ihres Paketmanagers, mit der richtigen Version oder das von OS bereitgestellte Python, ...). Die Multiplikation von Werkzeugen und Installationen ist nach meiner Erfahrung zu chaotisch, da verschiedene Distributionen / Paketmanager / etc. sind normalerweise nicht dazu gedacht, gut miteinander zu spielen.

    
EOL 03.06.2013, 12:38
quelle
1

Da Sie viele dieser Pakete kompilieren müssen, ist dies nicht die einfachste Aufgabe auf dem Mac. Ich würde empfehlen, eine Distribution wie Anaconda zu verwenden. Es ist kostenlos, kommt mit allem, was Sie brauchen, und hat einen einfachen Installer. Es wird Ihnen viel Ärger ersparen, weil alle Komponenten zusammenarbeiten.

    
Mike Müller 03.06.2013 11:20
quelle
1

Brew hat keinen sauberen Matplotlib-Port; Der Port, den brew search matplotlib findet, ist für python2, nicht für python3.

Brews python3-Installation empfiehlt jedoch, dass pip3 zur Installation von python3-Paketen verwendet wird. Dies installiert die Python3-Pakete in /usr/local/lib/python3.3/site-packages . Ich denke, dass Brews Ansatz besser als der von MacPort ist, da MacPorts mit MacPorts immer Python-Pakete aktualisiert, die nicht aktualisiert werden müssen, und das Tracking jeder Python-Version unabhängig von Python ist etwas verwirrend für mich.

>

pip3 beschwert sich jetzt jedoch über die Installation von matplotlib und sagt, dass es extern gehostet wird, was eine Sicherheitslücke darstellt und in Zukunft deaktiviert werden wird.

    
vy32 26.10.2013 14:29
quelle
1
___ qstntxt ___

Ich benutze Mac OSX 10.8, vorher habe ich Macports benutzt, aber ich habe auf brew umgeschaltet.

%Vor%

Also meine Frage ist einfach. Soll ich brew oder pip für die Installation von matplotlib verwenden? Gibt es einen Unterschied und was?

Mein Ziel ist es, Pandas, Ipython Notebook und SimpleCV in Betrieb zu nehmen.

    
___ answer16895541 ___

Da Sie viele dieser Pakete kompilieren müssen, ist dies nicht die einfachste Aufgabe auf dem Mac. Ich würde empfehlen, eine Distribution wie Anaconda zu verwenden. Es ist kostenlos, kommt mit allem, was Sie brauchen, und hat einen einfachen Installer. Es wird Ihnen viel Ärger ersparen, weil alle Komponenten zusammenarbeiten.

    
___ qstnhdr ___ Soll ich brew oder pip für die Installation von matplotlib verwenden? ___ answer19607863 ___

Brew hat keinen sauberen Matplotlib-Port; Der Port, den /usr/local/include/freetype2 findet, ist für python2, nicht für python3.

Brews python3-Installation empfiehlt jedoch, dass /usr/local/include/freetype zur Installation von python3-Paketen verwendet wird. Dies installiert die Python3-Pakete in %code% . Ich denke, dass Brews Ansatz besser als der von MacPort ist, da MacPorts mit MacPorts immer Python-Pakete aktualisiert, die nicht aktualisiert werden müssen, und das Tracking jeder Python-Version unabhängig von Python ist etwas verwirrend für mich.

>

pip3 beschwert sich jetzt jedoch über die Installation von matplotlib und sagt, dass es extern gehostet wird, was eine Sicherheitslücke darstellt und in Zukunft deaktiviert werden wird.

    
___ tag123matplotlib ___ Matplotlib ist eine Grafikbibliothek für Python, die interaktiv verwendet oder in eigenständige GUIs eingebettet werden kann. Seine kompakte "pyplot" -Schnittstelle ähnelt den Zeichenfunktionen von MATLAB®. ___ answer16896912 ___

Wenn Gebräu wie MacPorts funktioniert, gehen Sie am besten durch. Hier sind ein paar Gründe warum:

  • Wenn Sie Ihren Paketmanager (MacPorts, brew, ...) verwenden, um später weitere Programme zu installieren, die von Matplotlib abhängen, installiert der Paketmanager es < stark> unabhängig .

  • Wenn Sie ein Python-Paket über pip installieren und pip es in Ihrer Paket-Manager-Struktur (MacPorts, brew, ...) installiert, könnte sich der Paket-Manager beschweren . Zum Beispiel möchte MacPorts pip-installierte Pakete nicht als Vorsichtsmaßnahme löschen, damit die Kompilierung aufhört, wenn MacPort feststellt, dass jemand auf seinem Rasen gegangen ist. Die beste Methode zur Installation von Python-Paketen besteht darin, zuerst zu überprüfen, ob sie von Ihrem Paketmanager bereitgestellt werden, und sie dann nur mit pip zu installieren, falls dies nicht der Fall ist.

  • Die Kompilierung mit pip schlägt manchmal fehl wo ein Paketmanager (MacPorts, ...) kein Problem hat: Paketmanager sind einfach mächtiger und allgemeiner Werkzeuge (sie spielen gut mit den erforderlichen kompilierten Bibliotheken, z Instanz).

  • Ich würde nicht empfehlen, eine separate Verteilung von Matplotlib zu verwenden , aus den gleichen Gründen: Jedes Programm von brew, das von Matplotlib abhängt, installiert es trotzdem. Wenn Sie stattdessen ein solches Programm ohne Ihren Paketmanager installieren möchten, ist es im Allgemeinen schwierig, es mit einer bestimmten Verteilung von Matplotlib arbeiten zu lassen (sie benötigen möglicherweise Bibliotheken, die von oben installiert werden müssen, usw.).

    >

Zusammenfassend würde ich empfehlen, ein System für alles zu verwenden (brew, da dies das ist, was Sie gewählt haben) und %code% für Dinge, die dieses System nicht bietet (stellen Sie sicher, dass Der Pip, den Sie verwenden, entspricht dem, wohin Sie gehen wollen: die Python-Bibliothek Ihres Paketmanagers, mit der richtigen Version oder das von OS bereitgestellte Python, ...). Die Multiplikation von Werkzeugen und Installationen ist nach meiner Erfahrung zu chaotisch, da verschiedene Distributionen / Paketmanager / etc. sind normalerweise nicht dazu gedacht, gut miteinander zu spielen.

    
___ tag123homebrew ___ Homebrew ist ein Paketmanager für OS X. Es bietet eine einfache Schnittstelle zum Installieren vieler Pakete. Es wurde entwickelt, um gut mit Ihrem bestehenden System zu spielen und es nicht zu stören. Es wurde komplett auf Git und Rubin gebaut und kann leicht an Ihre Bedürfnisse angepasst werden. Debugging-Hilfe bei Homebrew sollte mindestens Details der Ausgabe von "brauen Doktor" enthalten. ___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ tag123macos ___ macOS (früher bekannt als OS X oder Mac OS X) ist das Desktop-Betriebssystem von Apple, das auf Macintosh-Computern gefunden wurde. Verwenden Sie dieses Tag nur, wenn sich Ihre Frage auf die Verwendung von macOS-APIs oder Mac OS-spezifischem Verhalten bezieht, nicht weil Sie Ihren Code auf macOS ausführen. Fragen zur Verwendung oder Fehlerbehebung von macOS sind off-topic. ___ answer20303765 ​​___

Überlegen Sie, Ihre Python-Pakete in dedizierten Virtualenvs zu verwalten. Sie können beliebige Nicht-Python-Abhängigkeiten (Freetype, die von Matplotlib benötigt werden) mit Homebrew installieren, aber Sie haben eventuell weniger Probleme mit der Verwaltung Ihrer Python-Pakete mit pip innerhalb von virtualenv

Wenn Sie das System Python verwenden, können Sie matplotlib wie folgt installieren. Ich gehe davon aus, dass Sie den virtualenv auf oberster Ebene Ihres Home-Verzeichnisses platzieren wollen, so dass die erste Zeile in der Liste anders aussehen kann, wenn Sie das virtualenv anderswo erstellen möchten und Sie die verbleibenden Zeilen entsprechend anpassen müssen / p> %Vor%

Wenn %code% vorhanden ist, aber %code% nicht, müssen Sie einen Symlink von freetype2 zu freetype erstellen, um Fehler bei der Installation des matplotlib-Pakets zu vermeiden

%Vor%

Schließlich können Sie matplotlib mit pip installieren.     pip install matplotlib

Alle Anwendungen, die vom zuvor erstellten virtualenv ausgeführt werden, können matplotlib importieren.

Sollten Sie sich dazu entschließen, virtualenvs ausgiebig zu nutzen, sollten Sie sich virtualenvwrapper ansehen, die eine sehr gute Funktionalität bieten um mehrere virtualenvs zu verwalten und zwischen ihnen zu wechseln.

    
___
lotia 30.11.2013 18:06
quelle

Tags und Links