[[Vorlage(Getestet, focal, bionic)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme kompilieren: Pakete aus dem Quellcode erstellen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] [:Packprogramme: Archive entpacken] }}} [[Inhaltsverzeichnis()]] [:Python:] in der Version 3.x, werden nur bei den aktuellen Ubuntu-Desktop-Versionen automatisch installiert. Benötigt man jedoch eine neuere oder ältere Version (z.B. zu Testzwecken), lässt sich diese nicht über die offiziellen Paketquellen installieren. Dies ist aber dennoch durch eine manuelle Installation möglich, wenn man sie selbst kompiliert. Das parallele Betreiben von unterschiedlichen Python-Versionen ist konfliktfrei möglich. = Installation = == Abhängigkeiten installieren == Grundsätzlich reicht zum Kompilieren von Python der [:GCC:] Compiler, allerdings würden dann einige Module wie z.B. das SQLite-Modul, Tkinter und einige andere nicht mit übersetzt werden. Um den vollen Funktionsumfang von Python bzw. den standardmäßig enthaltenen Module zu nutzen, müssen eine Reihe von Entwicklerpaketen installiert sein8[1]: {{{#!vorlage Paketinstallation build-essential libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev tk-dev libffi-dev uuid-dev }}} Die Pakete können nach dem erfolgreichen Kompilieren von Python wieder entfernt werden. == Herunterladen == Den Quellcode für Python kann man entweder von der [https://www.python.org/downloads/source/ Downloadseite] {dl} von python.org oder von der [github:python/cpython:Github-Seite] des Projekt herunterladen. Danach entpackt man die Datei in ein beliebiges Verzeichnis[5], z.B. das eigene Homeverzeichnis. == Kompilieren == Nun wechselt man in des Verzeichnis, in das der Quellcode von Python entpackt wurde. Das Kompilieren erfolgt nach dem bekannten Dreitsatz, wobei es im letzten Schritt wichtig ist, `sudo make altinstall` aufzurufen [2][4]: {{{#!vorlage Befehl ./configure make sudo make altinstall }}} Der Vorgang kann auch auf schnellen Rechner einige Minuten dauern. Die Installation der ausführbaren Programme erfolgt standardmäßig nach '''/usr/local/bin/pythonX.Y''', alle Dateien bzw. Module von Python '''/usr/local/lib/pythonX.Y''', wobei `X.Y` die jeweilige Python-Version. Möchte man in eine anderes Verzeichnis installieren, muss man dies beim Aufruf von `./configure` über die `--prefix=ZIELVERZEICHNIS` veranlassen. {{{#!vorlage Warnung Im 3. Schritt ist es wichtig, `sudo make altinstall` aufzurufen und __nicht__ `make install`. Letzterer Befehl funktioniert zwar auch, aber dann wird das System zusätzlich so eingerichtet, dass der Aufruf von `python3` nicht mehr auf die standardmäßig installierte Python-Version aus den Paketquellen zeigt, sondern auf die manuell installierte. Dies kann zu Problemen mit Programmen, die die Python-Version aus den Paketquellen benötigen, führen und im schlechtesten Fall auch zu Problemen mit dem System. }}} Nach erfolgreicher Kompilierung kann man das Verzeichnis löschen, in das der Quellcode entpackt wurde. [[Vorlage(Fremd, Software)]] = Nutzung = Die manuell installierte Python-Version lässt sich normal nutzen, wie das aus Python aus den Paketquellen auch. Der Aufruf lautet[3]: {{{#!vorlage Befehl pythonX.Y }}} wobei `X.Y` die installiert Python-Version ist. Installiert man eine Alpha- oder Beta-Version lautet der Aufruf genau so, es gibt kein `alpha` oder `beta` Prä- oder Postfix im Dateinamen. Neben dem Python-Interpreter werden noch einige anderen Programm mit installiert: * '''idleX.Y''': Entwicklungsumgebung für Python * '''pipX.Y''': [:pip:] für die installierte Python-Version * '''2to3X.Y''': Hilfsprogramm, um Python 2 Code nach Python 3.x zu portieren * '''pydocX.Y''': Hilfsprogramm, um die Dokumentation zu installierten Python-Version anzeigen * '''setup_tools-X.Y''': Setup Tools für die installierte Python-Version = Deinstallation = Es gibt leider keinen `make uninstall` Befehl, so dass die Dateien- und Verzeichnisse, welche bei der manuellen Installation angelegt wurden, von Hand gelöscht werden müssen. Dafür sind Root-Rechte notwendig. Die Befehle lauten: {{{#!vorlage Befehl sudo rm -r /usr/local/lib/pythonX.Y sudo rm /usr/local/lib/libpythonX.Ym.a sudo rm /usr/local/bin/idleX.Y sudo rm /usr/local/bin/pythonX.Y sudo rm /usr/local/bin/pythonX.Ym sudo rm /usr/local/bin/pythonX.Ym-config sudo rm /usr/local/bin/pyvenv-X.Y sudo rm /usr/local/bin/2to3X.Y sudo rm /usr/local/bin/pydocX.Y sudo rm /usr/local/bin/easy_install-X.Y }}} wobei `X.Y` die manuell installierte Python-Version ist. #tag: Programmierung, Python