Die .NET-DLL kann unter macOS nicht mit Python.NET (Pythonnet) geladen werden.
Posted: 14 Jan 2025, 12:31
Ich versuche, eine .NET-DLL auszuführen () unter macOS mit Python und Python.NET (über pythonnet und clr), um Methoden aus dieser DLL aufzurufen
Problem:
[*]Problem beim Hinzufügen der Referenz: Obwohl die erforderlichen Bibliotheken installiert wurden (), ich kann die .NET-DLL nicht mit clr.AddReference() laden. Wenn ich den absoluten Pfad zur DLL angebe, erhalte ich eine System.IO.FileNotFoundException, die angibt, dass die Datei nicht gefunden werden kann.
[*]Lösungsversuche:
Was ich versucht habe:
Code: Select all
TEST.RestAPI.SDK.dll
Problem:
[*]Problem beim Hinzufügen der Referenz: Obwohl die erforderlichen Bibliotheken installiert wurden (
Code: Select all
pythonnet
[*]Lösungsversuche:
- Ich habe versucht, sowohl absolute als auch relative Pfade zur DLL zu verwenden, aber der Fehler ist aufgetreten bleibt bestehen.
- Das habe ich überprüft, ob die DLL im angegebenen Pfad vorhanden ist und dass der Pfad korrekt ist.
- macOS
- Python 3.12
- Python.NET (3.0.5) in einer virtuellen Umgebung installiert
Code: Select all
pythonnet
- Die .NET DLL soll in einer ausgeführt werden Windows-Umgebung, und ich muss es auf macOS laden.
- Ich habe es versucht Verwendung von Wine zum Emulieren einer Windows-Umgebung zum Ausführen der DLL, aber auch Probleme mit Wine, wie etwa Fehlermeldungen wie:
„Unbekannte Befehlszeilenoption: '--arch=x86‘“ „
und Wine-bezogene Fehler beim Versuch, die DLL mit Mono oder direkt mit Wine auszuführen. - Ich habe auch versucht, Mono zu verwenden, um die DLL unter macOS auszuführen Es sind Probleme mit der Architekturkompatibilität aufgetreten (standardmäßig wird eine 64-Bit-Umgebung verwendet, während die DLL 32-Bit ist).
- Richtig Verweisen auf die .NET-DLL in Python mit pythonnet on macOS.
- Mit Wine oder Mono die .NET-DLL unter macOS ausführen oder laden, und Behebung etwaiger Kompatibilitätsprobleme (nicht übereinstimmende Architektur, fehlende Bibliotheken usw.).
Was ich versucht habe:
- Absolute Pfade in clr.AddReference() verwendet, aber die FileNotFoundException erhalten.
- Wine wurde mit verschiedenen Optionen konfiguriert, es sind jedoch architekturbezogene Probleme aufgetreten (unterstützt nicht die erforderliche Architektur).
Code: Select all
Wine
- Versucht mit Mono, aber die Konfiguration ist aufgrund von Architekturkompatibilitätsproblemen fehlgeschlagen.
Zusammenfassend versuche ich, DLLs über CLR zu laden, um sie in Python-Code zu verwenden, was mir zuvor unter Windows ohne größere Probleme möglich war.