Es gibt zwei komplett gegensätzliche Lager: eines zugunsten von System-Paketen und eines für separate Installation. Ich bin persönlich im "System-Paket" -Camp. Ich werde Argumente von jeder Seite unten zur Verfügung stellen.
Pro Systempakete: Der Systempacker kümmert sich bereits um die Abhängigkeit und die Einhaltung der Gesamtsystemrichtlinien (z. B. Dateilayout). Systempakete stellen Sicherheitsupdates bereit, während sie immer noch darauf achten, die Kompatibilität nicht zu beeinträchtigen - daher werden manchmal Sicherheitsupdates zurückportiert, die die Autoren des Upstream nicht zurückportiert haben. Systempakete sind "sicher". System-Upgrades: Nach einem System-Upgrade haben Sie wahrscheinlich auch eine neue Python-Version, aber alle Ihre Python-Module sind noch vorhanden, wenn sie von einem System-Packager stammen. Das ist alles persönliche Erfahrung mit Debian.
Con Systempakete: Nicht alle Software kann als Systempaket zur Verfügung gestellt werden oder nicht in der neuesten Version; Wenn Sie sich selbst in das System installieren, können Systempakete beschädigt werden. Upgrades können Ihre Anwendung beschädigen.
Pro separate Installation: Einige Leute (insbesondere Web-Anwendung Entwickler) argumentieren, dass Sie unbedingt eine wiederholbare Installation benötigen, nur mit den Paketen, die Sie wollen, und vollständig von System Python entkoppelt. Dies geht über Self-Installed vs. System-Pakete hinaus, da Sie selbst bei einer selbst installierten Version möglicherweise noch das System Python modifizieren; Mit der separaten Installation werden Sie nicht. Wie Lennart erläutert, gibt es jetzt spezielle Toolketten, die diese Einrichtung unterstützen. Die Leute argumentieren, dass nur dieser Ansatz wiederholbare Ergebnisse garantieren kann.
Con getrennte Installation: Sie müssen sich selbst mit Fehlerbehebungen befassen, und Sie müssen sicherstellen, dass alle Benutzer die separate Installation verwenden. Im Fall von Web-Anwendungen ist Letzteres typischerweise einfach zu erreichen.
[Pyenv] (https://github.com/yyuu/pyenv#readme) ist ein wunderbares Werkzeug zum Verwalten mehrerer Python-Versionen und [virtualenvs] (https://github.com/yyuu/pyenv-virtualenv#readme). –