Vorsichtsmaßnahmen und Fehlerbehandlung beim Aufrufen der .NET-DLL aus Python mit Pythonnet

Pythonnet - Was ist Python.NET?

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

Wie benutzt man

Dieser Artikel war sehr hilfreich für die Verwendung. So rufen Sie .NET über Python auf und umgekehrt

Hier ist eine kurze Einführung.

Wie installiert man

pip install pythonnet

Anwendungsbeispiel

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.

Vorsichtsmaßnahmen und was zu tun ist, wenn ein Fehler auftritt

Hier sind einige Punkte, auf die ich bei der Verwendung von Pythonnet gestoßen bin und wie ich sie gezielt einsetzen kann.

Schreiben Sie keine DLL

** 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')

Sicherheit zulassen

** 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

image.png

Passen Sie 64bit / 32bit an DLL und Python an

** 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

Vorsichtsmaßnahmen und Fehlerbehandlung beim Aufrufen der .NET-DLL aus Python mit Pythonnet
Vorsichtsmaßnahmen bei der Verwendung von Phantomjs aus Python
Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python
Vorsichtsmaßnahmen bei der Verwendung von Codecs und Pandas
Vorsichtsmaßnahmen bei Verwendung von sechs mit Python 2.5
Fehlerbenachrichtigungsmethode beim Aufrufen von Python über die Windows-Benutzeroberfläche oder Winsound.Beep
Von Python bis zur Verwendung von MeCab (und CaboCha)
Umgang mit OAuth2-Fehlern bei Verwendung von Google APIs aus Python
Python-Fehlerbehandlung
Fehler, der in OpenCV3 und seiner Lösung aufgetreten ist. Vorsichtsmaßnahmen bei Verwendung von OpenCV3 auf dem Mac
Ich habe versucht, Python-Code aus .Net mit Pythonnet auszuführen (Hallo World Edition)
Zugriffsreihenfolge mehrdimensionaler Arrays beim Aufrufen von Fortran-Subroutinen aus Python (ctypeslib und f2py)
Fehler aufgrund eines Konflikts zwischen Pythons bei der Verwendung von Gurobi
Tipps und Vorsichtsmaßnahmen beim Portieren von MATLAB-Programmen nach Python
Installationsmethode bei Verwendung von RealSense aus Python (pyenv edition)
Fehler beim Ausführen von Python-Befehlen ohne Verwendung der Anaconda-Eingabeaufforderung
Holen Sie sich Dateien von Linux mit paramiko und scp [Python]
Vorsichtsmaßnahmen beim Umgang mit Luigi
Vorsichtsmaßnahmen bei der Verwendung von Chainer
Vorsichtsmaßnahmen bei der Eingabe von CSV mit Python und der Ausgabe an json, um exe zu erstellen
Konvertieren Sie mit Python für .NET von Pandas DataFrame in System.Data.DataTable
Visualisieren Sie die Pflanzenaktivität aus dem Weltraum mithilfe von Satellitendaten und Python
Prognostizieren Sie das Geschlecht anhand des Namens mithilfe der Gender-API und von Pykakasi in Python
[Python] Zufällige Datenextraktion / -kombination aus DataFrame mit Random und Pandas
Nehmen Sie Zeitraffer von einer PC-Kamera mit Python, OpenCV auf
Mit Python abflachen
Reaktion auf Fehler bei der Installation von mecab-python
Fehler beim Spielen mit Python
Bei Verwendung von if und bei Verwendung von while
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
Fehler und Lösung bei der Installation von Python3 mit Homebrew auf einem Mac (Catalina 10.15)
Vorsichtsmaßnahmen beim Übergeben von def an sortierte und gruppierte Funktionen in Python? ??
Fehlerprotokoll-Ausgabemethode bei Verwendung des Bottle-Frameworks mit GAE / Python