Ist es möglich, in einem eigenen Modul namens "curses" das Original nachzuladen? Oder verbaue ich mir durch unbedacht gewählte eigene Modulnamen grundsätzlich den Zugriff auf die Systemmodule? In diesem Fall würde ich sagen: Willkommen DLL-Hölle... ;)
Stefan
Eigene Module mit Namen der Systemmodule möglich?
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Stefan!sma hat geschrieben:In diesem Fall würde ich sagen: Willkommen DLL-Hölle...
Ich als langjähriger Visual Basic 6 Programmierer kenne die **DLL-Hölle** und noch viel mehr Schweinereien die mit COM zusammen hängen. Je größer dein Programm wird, desto schwieriger wird es damit klar zu kommen...
Aber einfach nur die Module nicht wie Systemmodule zu nennen, ist nicht damit vergleichbar.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
mitsuhiko, DLL-Hölle ist für mich das Problem, mit verschiedenen Versionen von Bibliotheken (oder im Python-Fall mit Modulen) umzugehen und an möglichen Versionskonflikten zu sterben.
gerold , was weiß ich denn, welche Namen Systemmodule in zukünftigen Python-Versionen haben werden. Wie kann ich da Konflikte ausschließen? Oder welche 3rd Party-Module ich noch später installieren werde und was die da den site-packages hinzufügen werden?
Ein einfaches "__import__('curses')" lädt ebenfalls das eigene Modul. Damit komme ich nicht an das Systemmodul heran - egal ob mit oder ohne absoluten Imports. Erst wenn ich mein Modul als Submodul in ein weiteres Modul schiebe und dort absolute imports benutze, geht es - erfordert aber Python 2.5 und ist IMHO irgendwie unschön.
Stefan
gerold , was weiß ich denn, welche Namen Systemmodule in zukünftigen Python-Versionen haben werden. Wie kann ich da Konflikte ausschließen? Oder welche 3rd Party-Module ich noch später installieren werde und was die da den site-packages hinzufügen werden?
Ein einfaches "__import__('curses')" lädt ebenfalls das eigene Modul. Damit komme ich nicht an das Systemmodul heran - egal ob mit oder ohne absoluten Imports. Erst wenn ich mein Modul als Submodul in ein weiteres Modul schiebe und dort absolute imports benutze, geht es - erfordert aber Python 2.5 und ist IMHO irgendwie unschön.
Stefan
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Stefan!sma hat geschrieben:gerold , was weiß ich denn, welche Namen Systemmodule in zukünftigen Python-Versionen haben werden. Wie kann ich da Konflikte ausschließen?
Kein Problem! Denn wenn du das zukünftige Systemmodul in deinem aktuellen Programm nicht brauchst, ist es auch egal, wenn es namentlich überschrieben wird.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Stimmt auch wieder...gerold hat geschrieben:Kein Problem! Denn wenn du das zukünftige Systemmodul in deinem aktuellen Programm nicht brauchst, ist es auch egal, wenn es namentlich überschrieben wird.
Stefan
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Deswegen erstellt man Packages.sma hat geschrieben:Ein einfaches "__import__('curses')" lädt ebenfalls das eigene Modul. Damit komme ich nicht an das Systemmodul heran - egal ob mit oder ohne absoluten Imports.
TUFKAB – the user formerly known as blackbird
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nicht ganz. RuleDispatch nutzt beispielsweise das Parser-Modul der Stdlib, das ist ganz unpraktisch wenn man sein eigenes Modul ``parser.py`` nennt und sich wundert, warum RuleDispatch bei etwas komplizierterem Dispatching plötzlich crasht, je nachdem in welchem Ordner man den Beispielcode testet.gerold hat geschrieben:Kein Problem! Denn wenn du das zukünftige Systemmodul in deinem aktuellen Programm nicht brauchst, ist es auch egal, wenn es namentlich überschrieben wird.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice