On Sun, May 05, 2024 at 10:32:28AM -0000, Bastian Blank wrote:
> Marc Haber wrote:
> > [37/5247]mh@swivel:~/git/zg2dns $ grep -E 'class|import' get-root zg2dns/*
> > get-root:from zg2dns.rootdata import DNSRootDataParser
> > zg2dns/query.py:from rootdata import DNSRootDataParser
> > zg2dns/query.py:class Zg2DNSQuery:
> > zg2dns/rootdata.py:class DNSRootDataParser:
> 
> Versuche mal "zg2dns.query" zu importieren

Wo?

> Der Python-Interpreter fügt das Verzeichnis, in dem das aktuelle Script
> liegt, dem Suchpfad hinzu.
> 
> Rufst du "get-root" auf, dann ist es ".". Damit findet "import
> zg2dns.rootdata" auch "zg2dns/rootdata.py".
> 
> Rufst du aber "zg2dns/query.py" direkt auf, dann ist auf einmal
> das Verzeichnis "zg2dns" im Suchpfad. Also referenziert "import
> rootdata" auf einmal was anderes.

Also muss ich abhängig von dem Ort wo mein Skript liegt unterschiedliche
import-Statements benutzen, das finde ich mindestens unschön. Aber jetzt
wo ich es weiß kann ich aes natürlich machen.

> Dafür gibt es "pip install -e ." z.B. Damit macht man das aktuelle
> Projekt im globalen Suchpfad des benutzten Interpreters verfügbar.

Aber hoffentlich nur im Environment einer Subshell? Oder ist das
persistentes Herumfummeln im System? Wenn ja, wo?

> > Wir arbeiten Modulentwicker in so einer Situation?
> 
> Module werden nicht als Scripte direkt aufgerufen, sind also auch nie
> ausführbar. Statt dessen werden sie mittels "python3 -m" aufgerufen.

Das Python Tutorial Kapitel 6.1.1 "Executing modules as scripts" stelt
das als ganz praktisches Feature dar.

Grüße
Marc

-- 
-----------------------------------------------------------------------------
Marc Haber         | "I don't trust Computers. They | Mailadresse im Header
Leimen, Germany    |  lose things."    Winona Ryder | Fon: *49 6224 1600402
Nordisch by Nature |  How to make an American Quilt | Fax: *49 6224 1600421
_______________________________________________
python-de Mailingliste -- python-de@python.org
Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an 
python-de-le...@python.org
https://mail.python.org/mailman3/lists/python-de.python.org/
Mitgliedsadresse: arch...@mail-archive.com

Reply via email to