Es gibt mehrere Argumente:
Verwenden Sie Repositorys / PPAs, da diese Sie mit Sicherheitskorrekturen sowohl stabil als auch auf dem neuesten Stand halten.
Dies ist meistens wahr. Wenn Sie beispielsweise python-django
wie bisher installieren , erhalten Sie Sicherheitsupdates. Dies ist gut, da Sie nur den Überblick über apt behalten müssen, die Dinge aber noch testen müssen, bevor Sie Aktualisierungen vornehmen (obwohl das Testen jedes Mal in Ordnung sein sollte).
Sie könnten argumentieren, dass Sie in diesem pip
Fall möglicherweise nie nach Updates suchen.
Verwenden pip
Sie diese Option, um die richtigen "stabilen" Versionen zu verwenden.
Daran besteht kein Zweifel: Die Repos hinken der realen Welt hinterher. Django ist 2.0, aber die Repos für die LTS-Version von Ubuntu (bei der viele Leute bei Servern bleiben) erhalten unter Ubuntu 16.4 lts mit Python 2 nur 1.8, aber immer noch Sicherheitsupdates.
pip
gibt Ihnen die ganze Zeit die neuesten. Sie müssen sie nur selbst aktualisieren.
Ein Upgrade einer wiederverwendeten Python-Installation kann ein Albtraum sein
Wenn Sie Ubuntu auf die nächste Version aktualisieren, werden viele Pakete aktualisiert. Vieles ändert sich. Ich weiß, in Django bedeutet dies, dass Sie auf Code-Inkompatibilitäten und Verringerungen achten müssen. Dies gilt jedoch auch für alle anderen Python-Codes.
Das Gleiche gilt, pip
aber mit pip
Ihnen können Sie immer nur eine Sache gleichzeitig tun. Sie wissen, was die Probleme verursacht, sodass Sie wissen, wo Sie nach dem Fix suchen müssen.
pip
+ virtualenv
können Sie die Dinge getrennt halten
virtualenv
Ermöglicht tragbare, kleine Python-Umgebungen. Auf diese Weise können Sie mehrere verschiedene Python-Umgebungen nebeneinander auf demselben Computer ausführen.
Der offensichtliche Segen scheint in der Wartung zu liegen, da Sie die Umgebung genauso wie den Code verwalten können. Auch speichern Sie die Umwelt in der zu VCS ... aber Sie sollten bedenken , dass zwölf verschiedene mit virtualenv
s Mittel zwölf Umgebungen Sie auf und Aktualisierung überprüfen müssen.
Bearbeiten: Nach einer schrecklichen Reihe von Upgrades auf einem Server, um von Lucid zu Precise zu gelangen, habe ich von einer gemischten Apt + Pip-Situation (Nr. 1 und 2) auf eine reine Pip + Virtualenv-Situation (Nr. 4) umgestellt. Anstatt ein virtuelles Env pro Site zu haben, habe ich eines für ungefähr ein Dutzend Sites freigegeben. Das funktioniert erstmal.
Ich musste auch ein kleines Skript schreiben, das den Status der mit pip installierten Pakete überprüft. Wenn es Updates gibt, muss ich sie manuell anwenden (was gut ist, weil ich sie lokal teste, in einer lokalen virtuellen Umgebung). Das alles ist immer noch ein bisschen schmerzhafter als ursprünglich, aber auf lange Sicht viel besser.