Ich könnte ein Python - Paket installieren ( zum Beispiel , numpy
) auf meinem Mac entweder über Macports:
port install py-numpy
oder über pip
:
pip install numpy
Was sind die allgemeinen Vor- und Nachteile jedes Ansatzes? Wann sollte jeder Ansatz angewendet werden?
- Wann sollte ich eins dem anderen vorziehen?
- Ist es wichtig, ob das von mir installierte Paket klein oder groß ist (z. B.
numpy
)? - Kommt es auf die Version von Python an, die ich verwende (
2.x
vs.3.x
oder Applepython
vs. MacPortpython
)? - Ist es wichtig, ob
python
auf meinem Mac mehrere Versionen von installiert sind? - Können sie gleichzeitig verwendet werden?
Ich hoffe auf eine Antwort, die eine kurze Auflistung einiger Vor- und Nachteile jedes Ansatzes mit einigen Diskussionen darüber enthält, wann einer über den anderen gewählt werden soll.
matplotlib
.numpy
ist nur ein Beispiel. Ich frage nach der Installation von Paketen im Allgemeinen.Antworten:
Sie können gleichzeitig verwendet werden, und es sollte kein Problem zwischen dem Mischen der beiden geben (mit einer großen Einschränkung und einem Gotcha ...).
Die Einschränkung
Die Einschränkung ist, dass Macports / Homebrew und Pip nicht wissen, dass beide gegeneinander installiert wurden.
Nehmen wir zum Beispiel an, Sie installieren Python 3.6 auf Ihrem Mac. Sie möchten
nltk
, was für diese Version auf Macports technisch nicht verfügbar ist, aber es ist auf pip. Also installierst du auf pip. Zwei Monate später wird es auf Macports installiert und Sie können es installieren. Jetzt haben Sie zwei verschiedene Versionen vonnltk
auf Ihrer Maschine, also Vorbehalt Emptor .Die Gotcha
Wenn Sie pip mit Macports verwenden, müssen Sie sicherstellen, dass es sich um den pip handelt, der über Macports installiert und dieser Python-Version zugeordnet ist. So sehen Sie beispielsweise einen py35-pip, einen py36-pip usw.
Sobald Sie den richtigen Pip installiert haben, stellen Sie mit dem
select
Befehl von Macports sicher, dass er mit der entsprechenden Python-Version aktiviert ist:quelle
Sie sollten es verwenden,
pip
da es das Python-native Tool zum Verwalten von Paketinstallationen ist, aber Sie sollten keine Pip-Installationsvorgänge in Ihre Python-Basisinstallation ausführen. Es kann ein Chaos sein, feste Versionsabhängigkeiten zwischen mehreren Software-Repositorys zu sortieren, wenn Sie alles in Ihre Python-Basisinstallation auf Ihrem Computer installieren.Stattdessen sollten Sie virtualenv pip-installieren und dann verschiedene virtuelle Python-Installationen und alle zugehörigen pip-installierten Paketpakete für jede virtuelle Umgebung verwalten.
Auf diese Weise können Sie von der Arbeit mit beispielsweise
beautifulsoup
1.x in einem Software-Repository zubeautifulsoup
2.x in einem anderen Repository wechseln, ohne sich durch die Hölle des Abhängigkeitsmanagements wühlen zu müssen.quelle
Ich habe gerade einen kurzen Test mit Homebrew , MacPorts und pip3 durchgeführt, um nach demselben Paket zu suchen :
MacPorts und pip3 hatten das gleiche Paket (Version 1.18.1 ), während Homebrew Version 1.16 hatte .
Wenn Sie mit anderen zusammenarbeiten, sollten Sie sich am besten darauf einigen, wie Ihre Entwicklungsumgebungen konfiguriert sind, oder Sie werden auf Anomalien stoßen und unterschiedliche Testergebnisse erhalten. Daher ist das beste Werkzeug das, über das Sie sich alle einig sind ;-)
quelle