Précautions et gestion des erreurs lors de l'appel de la DLL .NET à partir de python à l'aide de pythonnet

pythonnet - Qu'est-ce que Python.NET?

Une bibliothèque qui vous permet d'appeler des DLL pour .NET à partir de Python. Il est sous licence MIT et tout le monde peut l'utiliser gratuitement. https://github.com/pythonnet/pythonnet

Comment utiliser

Cet article a été très utile pour savoir comment l'utiliser. Comment appeler .NET depuis Python et vice versa

Voici une brève introduction.

Comment installer

pip install pythonnet

Exemple d'utilisation

Si vous souhaitez utiliser ABCLib.dll dans le même répertoire que test.py. S'il se trouve dans un autre répertoire, ajoutez le chemin selon le cas. clr.AddReference ('./DEF/ABCLib') etc.

test.py


import clr

clr.AddReference('ABCLib')
from ABCTools import ABCLib

abc = ABCLib()

clr semble être une abréviation de Common Language Runtime.

Précautions et que faire en cas d'erreur

Voici quelques points sur lesquels je suis tombé lors de l'utilisation du pythonnet et comment les cibler.

N'écrivez pas .dll

** Erreur: System.IO.FileNotFoundException: impossible de trouver l'assembly'ABCLib.dll '. ** J'obtiens cette erreur si j'écris l'extension ".dll "en faisant" clr.AddReference ". Supprimons le'.dll '.

#Exemple d'erreur
clr.AddReference('ABCLib.dll')

#Exemple où aucune erreur ne se produit
clr.AddReference('ABCLib')

Autoriser la sécurité

** Erreur: System.IO.FileNotFoundException: impossible de trouver l'assembly'ABCLib '. ** Pour les DLL obtenues de l'extérieur, l'accès au fichier peut être bloqué. Essayez de configurer pour autoriser l'accès. Faites un clic droit sur le fichier dll → Propriétés → Général → Cochez "Autoriser" en bas → OK

image.png

Match 64bit / 32bit avec DLL et Python

** ERREUR: System.IO.FileNotFoundException: impossible de charger le fichier ou l'assembly'ABCLib, Version = ~~~~~~~~, Culture = neutral, PublicKeyToken = null ', ou l'une de ses dépendances. Le fichier spécifié est introuvable. ** **

Il ne pouvait pas être lu si le bit de DLL et Python ne correspondait pas.

--Comment vérifier les bits Python

python


import sys
print(sys.version)

production


3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)]

--Comment vérifier le bit de DLL J'ai fait référence à cet article. Comment vérifier si EXE ou DLL est 32 bits ou 64 bits \ -Qiita

Recommended Posts

Précautions et gestion des erreurs lors de l'appel de la DLL .NET à partir de python à l'aide de pythonnet
Précautions lors de l'utilisation de phantomjs de python
Précautions lors de l'utilisation de Pit avec Python
Précautions lors de l'utilisation de codecs et de pandas
Précautions lors de l'utilisation de six avec Python 2.5
Méthode de notification d'erreur lors de l'appel de python à partir de l'interface graphique Windows ou de winsound.
De Python à l'utilisation de MeCab (et CaboCha)
Comment gérer l'erreur OAuth2 lors de l'utilisation des API Google à partir de Python
Gestion des erreurs Python
Erreur survenue dans OpenCV3 et sa solution Précautions lors de l'utilisation d'OpenCV3 sur Mac
J'ai essayé d'exécuter du code Python à partir de .Net en utilisant Pythonnet (édition Hallo World)
Ordre d'accès des tableaux multidimensionnels lors de l'appel de sous-programmes Fortran à partir de Python (ctypeslib et f2py)
Erreur due à un conflit entre pythons lors de l'utilisation de gurobi
Conseils et précautions lors du portage des programmes MATLAB vers Python
Méthode d'installation lors de l'utilisation de RealSense à partir de Python (édition pyenv)
Erreur lors de l'exécution de commandes Python sans utiliser l'invite Anaconda
Récupérer des fichiers depuis Linux en utilisant paramiko et scp [Python]
Précautions à prendre lors de la manipulation de Luigi
Précautions lors de l'utilisation de Chainer
Précautions lors de la saisie à partir de CSV avec Python et de la sortie vers json pour faire exe
Conversion de Pandas DataFrame en System.Data.DataTable à l'aide de Python pour .NET
Visualisez l'activité des plantes depuis l'espace à l'aide de données satellites et de Python
Prédire le sexe à partir du nom à l'aide de l'API Gender et de Pykakasi en Python
[Python] Extraction / combinaison de données aléatoires à partir de DataFrame en utilisant random et pandas
Tirez en accéléré à partir d'une caméra PC en utilisant Python, OpenCV
Aplatir à l'aide du rendement Python de
Réponse aux erreurs lors de l'installation de mecab-python
Erreur lors de la lecture avec python
Lors de l'utilisation si et lors de l'utilisation pendant
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
Erreur et solution lors de l'installation de python3 avec homebrew sur mac (catalina 10.15)
Précautions lors du passage de def aux fonctions triées et groupby en Python? ??
Méthode de sortie du journal des erreurs lors de l'utilisation du framework Bottle avec GAE / Python