ubuntuusers.de

Python Setuptools

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/python.png Die Setuptools 🇬🇧 sind eine Sammlung von Hilfsprogrammen für Python, mit deren Hilfe man leicht Python-Module bauen und installieren kann.

Auch wenn die Setuptools nach wie vor funktionieren und unterstützt werden, ist pip der gängigere Weg zur Installation von Python-Modulen, das auch seit Python 3.4 Teil der Standardinstallation von Python ist.

Installation

Die Setuptools installiert [1] man für Python 3 über das Paket:

  • python3-setuptools

Paketliste zum Kopieren:

sudo apt-get install python3-setuptools 

Oder mit apturl installieren, Link: apt://python3-setuptools

bzw. für Python 2:

  • python-setuptools

Paketliste zum Kopieren:

sudo apt-get install python-setuptools 

Oder mit apturl installieren, Link: apt://python-setuptools

Benutzung

easy_install

Das Programm easy_install3 (Python3) bzw. easy_install (Python 2) bietet eine einfache Möglichkeit, Module aus dem Python Package Index 🇬🇧 (kurz PyPI) zu installieren. Der PyPI kann als ein Äquivalent zu Perls CPAN, PHP PEAR oder Ruby Gems gesehen werden.

Hinweis!

Fremdsoftware kann das System gefährden.


Anmerkung: Module aus dem Python Package Index werden an der Paketverwaltung „vorbei“ installiert. Dies birgt zwar an sich gesehen keine Konflikte, kann aber zu unvorhergesehen Ergebnissen oder Problemen mit Python-Skripten führen, wenn das gleiche Python Modul auch über die Paketverwaltung installiert wird, zumal mittels easy_install3 bzw. easy_install installierte Module denen aus der Paketverwaltung vorgezogen werden.

Die Module werden in Form von sogenannten Python Eggs 🇬🇧 installiert. Dies geschieht über den Aufruf [2]

sudo easy_install3 MODULNAME 

Der Installationspfad ist /usr/local/lib/pythonVERSION/dist-packages/ . Module von PyPi lösen Abhängigkeiten, ebenso wie die Paketverwaltung von Ubuntu, selbstständig auf. D.h. benötigt ein Modul weitere Module, um korrekt zu funktionieren, dann werden diese ebenfalls installiert.

Möchte man ein Modul aktualisieren, so geschieht dies über den Befehl

sudo easy_install3 -U MODULNAME 

Benötigt man - aus welchem Grund auch immer - eine ältere Version eines Moduls, so kann man auch explizit die Versionsnummer bei der Installation mit angeben. Der folgende Befehl würde z.B. die Version 0.2.1 des Moduls "foobar" installieren:

sudo easy_install3 foobar==0.2.1 

easy_install3 kennt eine Reihe weiterer Optionen, die über den Aufruf von

easy_install3 --help 

angesehen werden können.

Module löschen

easy_install3 kennt keine direkte Version zum Löschen von Installierten Modulen, diese muss in zwei Schritten händisch erfolgen.

Als erstes "de-registriert" man das Modul in Python, so dass nicht mehr danach gesucht wird:

sudo easy_install3 -mxN MODULNAME 

Danach kann man das Unterverzeichnis des Moduls in dem oben genannten Installationsverzeichnis entfernen.

Hat man noch alte Versionen eines Moduls auf dem Rechner, z.B. weil man mehrfach mittels der Option -U ein Update durchgeführt hatte, so kann man die entsprechenden Unterverzeichnisse direkt löschen, ohne den oben genannten Befehl vorher aufzurufen. Der Befehl ist in der Tat nur für die neuste Version eines Moduls notwendig.

Weiterhin installieren einige Module nicht nur den eigentlichen Python-Code in dem oben genannten Verzeichnis, sondern installieren auch eine ausführbare Datei. Dies ist z.B. oft dann der Fall, wenn das Modul auch alleinstehend wie ein eigenes Programm funktioniert. Diese Datei muss auch von Hand gelöscht werden, der Speicherort ist normalerweise /usr/local/bin.

Weitere Funktionen

Wie oben bereits erwähnt besitzen die Setuptools ein Vielzahl weiterer nützlicher Funktionen. Einen guten Einsteig biete das Lesen der (englischsprachigen) Datei /usr/share/doc/python3-setuptools.txt.gz, welche nach der Installation des Setuptools-Pakets vorhanden ist.

Diese Revision wurde am 26. April 2019 12:21 von ubot erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung, System, Python