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.
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.
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.
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.
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.
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.
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.
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.
Ü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.
Tags und Links python macos matplotlib homebrew