Paketmanager - Benutzerebene
Für einen Paketmanager, der mehrere Python-Versionen installieren und verwalten kann, sind dies gute Optionen:
- pyenv - kann nur Versionen von Python installieren und verwalten
- asdf - kann viele verschiedene Sprachen installieren und verwalten
Diese Paketmanager haben den Vorteil, dass es möglicherweise einfacher ist, sie einzurichten und mehrere Python-Versionen mit ihnen zu installieren, als Python aus dem Quellcode zu installieren. Sie bieten auch Befehle zum einfachen Ändern der verfügbaren Python-Version (en) mithilfe von Shims und zum Festlegen der Python-Version pro Verzeichnis.
Dieser Nachteil besteht darin, dass sie standardmäßig auf Benutzerebene (in Ihrem Home-Verzeichnis) installiert werden und ein wenig Konfiguration auf Benutzerebene erfordern. Sie müssen Ihre ~/.profileund ~/.bashrcähnliche Dateien bearbeiten . Dies bedeutet, dass es nicht einfach ist, mit ihnen mehrere Python-Versionen global für alle Benutzer zu installieren. Zu diesem Zweck können Sie neben der vorhandenen Python-Version des Betriebssystems von der Quelle aus installieren.
Installation von der Quelle - systemweit
Für diese Methode benötigen Sie Root-Rechte.
Weitere Überlegungen und Optionen finden Sie in der offiziellen Python-Dokumentation zum Erstellen aus dem Quellcode .
/usr/localist der festgelegte Speicherort für einen Systemadministrator, an dem gemeinsam genutzte (systemweite) Software installiert werden kann. Die Unterverzeichnisse sind daher ein guter Ort, um die Python-Quelle herunterzuladen und zu installieren. Siehe Abschnitt 4.9 des Dateihierarchiestandards der Linux Foundation .
Installieren Sie alle Build-Abhängigkeiten. Verwenden Sie auf Debian-basierten Systemen:
apt update
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev
Wählen Sie aus, welche Python-Version Sie installieren möchten. Eine Liste finden Sie auf der Seite Python Source Releases .
Laden Sie die Datei herunter und entpacken Sie sie /usr/local/src. Ersetzen Sie sie X.X.Xunten durch die Python-Version (dh 3.8.2).
cd /usr/local/src
wget https://www.python.org/ftp/python/X.X.X/Python-X.X.X.tgz
tar vzxf Python-X.X.X.tgz
Legen Sie vor dem Erstellen und Installieren die CFLAGSUmgebungsvariable mit den erforderlichen C-Compiler-Flags fest (siehe makeDokumentation zu GNU ). Dies ist normalerweise nicht für den allgemeinen Gebrauch erforderlich. Wenn Sie jedoch beispielsweise ein uWSGI-Plugin mit dieser Python-Version erstellen möchten, möchten Sie möglicherweise die Flags wie -fPICfolgt setzen:
export CFLAGS='-fPIC'
Ändern Sie das Arbeitsverzeichnis in das entpackte Python-Quellverzeichnis und konfigurieren Sie den Build. Möglicherweise möchten Sie die --enable-optimizationsOption im ./configureBefehl für die profilgesteuerte Optimierung verwenden . Verwenden Sie --prefix=/usr/localdie richtigen Unterverzeichnisse zu installieren ( /usr/local/bin, /usr/local/libusw.).
cd Python-X.X.X
./configure --enable-optimizations --prefix=/usr/local
Erstellen Sie das Projekt mit makeund installieren Sie mit make altinstall, um zu vermeiden, dass bei der Installation mehrerer Versionen Dateien überschrieben werden. Siehe die Warnung auf dieser Seite der Python-Build-Dokumentation.
make -j 4
make altinstall
Dann sollten Sie in der Lage sein, Ihre neuen Python- und Pip-Versionen mit pythonX.Xund pipX.X(dh python3.8und pip3.8) auszuführen . Beachten Sie, dass Sie den gesamten Pfad ( /usr/local/bin/pythonX.X) angeben oder einen Pfad festlegen müssen, wenn die Nebenversion Ihrer neuen Installation mit der Version des Betriebssystems übereinstimmt (z. B. wenn Sie python3.8.4 installiert haben und das Betriebssystem python3.8.2 verwendet hat) Alias zur Verwendung dieser Version.