Seite 1 von 1

ERROR: loadlibrary(python27.dll) failed

Verfasst: Mittwoch 8. Juli 2015, 11:47
von zizou2981
Hallo Zusammen,

ich habe ein Tool mit Python und wxpython programmiert, bei dem ich in letzter Zeit immer folgende Fehlermeldung beim Starten bekomme, obwohl die Datei "Python27.dll" im Installationsverzeichnis vorhanden ist:

'Unzulässiger Zugriff auf einen Speicherbereich. LoadLibrary (pythondll) failed'

Kann vielleicht jemand mir sagen, was die Fehlermeldung bedeutet bzw. was die Ursache dafür sein kann?

Mit freundlichen Grüßen

Re: ERROR: loadlibrary(python27.dll) failed

Verfasst: Mittwoch 8. Juli 2015, 13:06
von Sirius3
@zizou2981: Du machst unzulässige Sachen mit wxpython. Das kann viele Ursachen haben: Mehrere Instanzen in einem Prozess erzeugen, mit Threads arbeiten, Referenzen auf Objekte löschen, die noch benutzt werden, etc. Zeig doch ein Minimalbeispiel, das den Fehler reproduziert.

Re: ERROR: loadlibrary(python27.dll) failed

Verfasst: Mittwoch 8. Juli 2015, 13:18
von MagBen
LoadLibrary (pythondll) failed muss nicht heißen, dass die dll nicht gefunden wird, sondern kann auch heißen, dass es beim Laden der dll einen Fehler gibt. Es kann z.B. sein, dass die Python27.dll aus dem Installationsverzeichnis nicht mehr zum Rest Deiner Windows-Installation passt, weil irgendeine dll die Python27.dll braucht nicht geladen werden kann.

Re: ERROR: loadlibrary(python27.dll) failed

Verfasst: Mittwoch 8. Juli 2015, 22:53
von zizou2981
Zuerst danke euch für die schnelle Antwort.

Gibt es eine schnellere Methode, um herauszufinden, was die Ursache genau ist?

Danke

Re: ERROR: loadlibrary(python27.dll) failed

Verfasst: Mittwoch 8. Juli 2015, 23:14
von Sirius3
@zizou2981: was hast Du geändert vordem es nicht mehr funktioniert hat?

Re: ERROR: loadlibrary(python27.dll) failed

Verfasst: Mittwoch 8. Juli 2015, 23:51
von zizou2981
@Sirius3: die alte Version des Tools ist mit wxpython 2.8 programmiert. Die neue Version ist dagegen mit wxpython 3.0 implementiert. Ich muss aber auch erwähnen, dass das Tool über ein SVN basierte Update-Mechanismus verfügt. Das heißt das Tool updatet sich selber und startet sich neu, wenn eine neue Version vorhanden ist und genau bei diesem Start kommt zur Fehlermeldung.

Wenn ich aber den Installer für die neue Version verwende, funktioniert alles perfekt.

Außerdem wurde die Alte Version auf einem 32-Bit Rechner erstellt. Die neue Version dagegen wurde auf einem 64-Bit Rechner programmiert bzw. erstellt.

Re: ERROR: loadlibrary(python27.dll) failed

Verfasst: Donnerstag 9. Juli 2015, 00:15
von Sirius3
@zizou2981: und wie machst Du das Update und den Neustart?

Re: ERROR: loadlibrary(python27.dll) failed

Verfasst: Donnerstag 9. Juli 2015, 09:41
von zizou2981
@Sirius3: das Update funktioniert wie folgendes:

das Tool wird gestartet und überprüft am Anfang, ob eine neue Version bzw. SVN-Tag vorhanden ist. Wenn das der Fall ist, startet das Tool eine zweite mitgelieferte EXE-Datei mit 'os.execl'. Diese Datei ist ein zweite kleine Programm, das die haupt Applikation updatet. Das Update-Programm wird vor dem Start vom Hauptprogramm aktualisiert und genau beim Starten mit 'os.execl' kommt die Fehlermeldung.

Das Mechanismus hat eigentlich immer ganz gut funktioniert und habe bis jetzt keine Probleme damit gehabt.

Re: ERROR: loadlibrary(python27.dll) failed

Verfasst: Mittwoch 15. Juli 2015, 11:51
von zizou2981
Hallo zusammen,

ich habe mich weiter mit dem Thema beschäftigt und habe festgestellt, dass die Datei "python27.dll" im SVN-Repository fehlerfrei funktioniert. Wenn ich aber die Datei mit SVN exportiere und damit die lokale überschreibe, ist die lokale Datei auf einmal fehlerhaft. Ein simple Ersatz der lokale Datei mit Copy-Past verursacht dagegen das Problem nicht.

Hat jemand vielleicht eine Ahnung, was hier schief gelaufen sein kann?

Viele Grüße

Re: ERROR: loadlibrary(python27.dll) failed

Verfasst: Mittwoch 15. Juli 2015, 12:49
von BlackJack
@zizou2981: Also der erste ”Fehler” ist IMHO ja so etwas wie ein binäres Python in ein SVN-Repository zu stecken. ;-)

Kann es sein das SVN denkt bei der DLL handelt es sich um eine Textdatei und SVN/Windows konvertiert dann Zeilenendezeichen in der Datei‽ Schnapp Dir doch mal geeignete Werkzeuge und vergleiche die beiden Dateien, dann siehst Du ja wo die sich unterscheiden.

Re: ERROR: loadlibrary(python27.dll) failed

Verfasst: Mittwoch 15. Juli 2015, 15:27
von zizou2981
@BlackJack: bei binäre Dateien und SVN gebe ich dir vollkommen recht aber das war auch eine Anforderung vom Kunde.

ich habe mit winmerge gerade ein Vergleich gemacht und tatsächlich hat das Tool Unterschiede zwischen einige Dateien (darunter auch python27.dll) entdeckt.

die Frage jetzt ist: wie kann man das mit SVN bzw. pysvn vermeiden?

Re: ERROR: loadlibrary(python27.dll) failed

Verfasst: Mittwoch 15. Juli 2015, 15:56
von BlackJack
@zizou2981: Vielleicht hilft die FAQ hier weiter: How does Subversion handle binary files?

Re: ERROR: loadlibrary(python27.dll) failed

Verfasst: Donnerstag 16. Juli 2015, 09:28
von zizou2981
@BlackJack: danke für den Link :)

das Problem wurde jetzt endlich gelöst und zwar wie folgendes:

1. die Binär-Dateien innerhalb des SVN-Verzeichnis (mit SVN-Delete) löschen und ein Commit machen.
2. zum Verzeichnis muss ein neue SVN-Property eingefügt werden und zwar "auto-props". Damit kann SVN besser ordnen, von welchem Typ die Datei ist.
3. Schließlich müssen die gelöschten Dateien im Verzeichnis mit SVN-Add neu eingefügt werden und commitet

Danke an euch Alle und viele Grüße