Ich pflege ein Python-Modul, das die Funktionalität einer DLL umhüllt und freigibt (die ebenfalls von mir gepflegt wird). Die Interaktion mit der DLL erfolgt über ctypes.
All dies funktioniert wunderbar, dank der Wunder von ctypes. Allerdings bin ich bei weitem kein Python-Experte, daher gibt es einige Teile des Python-Codes, die mir nicht idomatisch erscheinen.
Insbesondere biete ich dem Benutzer des Moduls die Kontrolle über den Speicherort der DLL an. Die DLL wird beim Import des Moduls geladen. Ich mache das, weil ich das Verhalten basierend auf der Funktionalität der DLL ändern möchte und die DLL laden muss, um ihr Verhalten abzufragen.
Standardmäßig greift der DLL-Import auf den DLL-Suchpfad zurück, um die DLL zu lokalisieren. Ich würde es jedoch gerne ermöglichen, dass der Benutzer bei Bedarf den vollständigen Pfad zur DLL angeben kann, um eine bestimmte Version auszuwählen.
Derzeit mache ich das, indem ich eine Umgebungsvariable verwende, aber ich erkenne, dass dies eine ziemlich groteske Art ist, es zu tun. Ich suche nach einem kanonischen oder idomatischen Python-Weg, damit der Modul-Importer Informationen an das Modul übergeben kann, die zum Zeitpunkt des Modulimports abgerufen werden können.