Eine Bibliothek, mit der Sie DLLs für .NET von Python aus aufrufen können. Es ist MIT-lizenziert und kann von jedem kostenlos verwendet werden. https://github.com/pythonnet/pythonnet
Dieser Artikel war sehr hilfreich für die Verwendung. So rufen Sie .NET über Python auf und umgekehrt
Hier ist eine kurze Einführung.
pip install pythonnet
Wenn Sie ABCLib.dll im selben Verzeichnis wie test.py verwenden möchten.
Wenn es sich in einem anderen Verzeichnis befindet, fügen Sie den entsprechenden Pfad hinzu. clr.AddReference ('./DEF/ABCLib')
etc.
test.py
import clr
clr.AddReference('ABCLib')
from ABCTools import ABCLib
abc = ABCLib()
clr
scheint eine Abkürzung für Common Language Runtime zu sein.
Hier sind einige Punkte, auf die ich bei der Verwendung von Pythonnet gestoßen bin und wie ich sie gezielt einsetzen kann.
** Fehler: System.IO.FileNotFoundException: Assembly 'ABCLib.dll' konnte nicht gefunden werden. ** Ich erhalte diesen Fehler, wenn ich die Erweiterung '.dll' schreibe, wenn ich 'clr.AddReference' mache. Löschen wir die '.dll'.
#Beispiel eines Fehlers
clr.AddReference('ABCLib.dll')
#Beispiel, bei dem kein Fehler auftritt
clr.AddReference('ABCLib')
** Fehler: System.IO.FileNotFoundException: Assembly 'ABCLib' konnte nicht gefunden werden. ** Bei DLLs, die von außen bezogen werden, kann der Zugriff auf die Datei blockiert sein. Versuchen Sie die Einstellung, um den Zugriff zu ermöglichen. Klicken Sie mit der rechten Maustaste auf die DLL-Datei → Eigenschaften → Allgemein → Aktivieren Sie unten "Zulassen" → OK
** Fehler: System.IO.FileNotFoundException: Datei oder Assembly 'ABCLib, Version = ~~~~~~~~~, Culture = neutral, PublicKeyToken = null' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die angegebene Datei wurde nicht gefunden. ** ** **
Es konnte nicht gelesen werden, wenn das Bit von DLL und Python nicht übereinstimmte.
python
import sys
print(sys.version)
Ausgabe
3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)]
Recommended Posts