Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Hermann Riemann Newsgroups: de.comp.lang.python Subject: Re: [Anleitung] Bearbeitbare Installationen Date: Mon, 26 Aug 2024 13:44:01 +0200 Lines: 51 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: individual.net v6y13LrwWmqKG1HKDaFIMQl7VjERDU0IBeBwx0dr+W3bJ9yzV1 Cancel-Lock: sha1:HHIAohmEEGd4e7KkGiP4iwszPuE= sha256:jw41pRksrBLVmNnpzQVke+pvxNDmhYfjmf6uUG5opyw= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.1 In-Reply-To: Content-Language: de-DE Xref: csiph.com de.comp.lang.python:6235 Am 26.08.24 um 12:42 schrieb Stefan Ram: > Viele Python-Programmierer kommen irgendwann einmal an den > Punkt, daß sie ein selbstgeschriebenes Modul "meinmodul" in > verschiedenen eigenen Projekten importieren wollen, die aber > in anderen Verzeichnissen stehen. > > In vielen Python-Büchern wird diese Thema leider kaum > behandelt. Wenn man lange genug rumfragt, erfährt man, > daß man eine "bearbeitbare Installation" mit > > pip install -e > > erzeugen soll. Aber dafür soll man erst einmal eine "setup.py" > or "pyproject.toml" anlegen. Hier habe ich dann noch ein Problem > mit den "setuptools". Die soll ich auch erst einmal installieren > ("Batteries included"?), aber wenn ich das dann mache (neueste > Version!) und "import setuptools" ohne Fehlermeldung läuft, > meldet pip weiterhin, daß ihm die setuptools fehlen . . . > > Also, das macht mir so keinen Spaß! Es erinnert an Java. Nach > etwas Probieren fand ich heraus, daß folgende Technik hier > unter einer aktuellen Version von CPython zum Ziel führt: > > Ich gehe in das "Lib/site-packages"-Verzeichnis der Python- > Installation. Dort lege ich eine Datei mit der Endung ".pth" an, > zum Beispiel "meinmodul.pth". In diese Datei schreibe ich eine Zeile > mit dem Dateisystempfad des Verzeichnisses, in dem sich die Module > befinden, die ich von überall her importieren können will. Fertig.! > > Das ist so schön einfach - ich bin sicher, daß die Herrscher > der Python-Welt es schon als "deprecated" markiert haben und > bald entfernen werden . . . Mein Schablone für Python Programm Anfänge: #!/usr/bin/python3 import os, sys, string sys.path.append("Name von meinem Standard Pythonverzeichnis") Ein Schattenverzeichnis mit symlinks halte ich wegen .pyc auch zweckmäßig, da Editoren auf die Originaldateien zugreifen, in grep -rn aber .pyc unerwünscht ist --