J'ai un module Python avec seulement des fonctions globales régulières. Je dois l'appeler à partir d'un autre environnement de script de domaine métier qui peut uniquement appeler des DLL C. Y at-il de toute façon de construire mes modules Python pour que d'autres codes puissent être appelés comme une fonction C standard exportée depuis une DLL? C'est pour un environnement Windows. Je suis au courant de IronPython, mais autant que je sache, il ne peut construire que des assemblys .NET, qui ne sont pas appelables en tant que fonctions C de DLL.Existe-t-il un moyen de créer une DLL de type C à partir d'un module Python?
7
A
Répondre
6
Jetez un oeil à this Codeproject article. Une façon serait d'envelopper vos fonctions python dans un DLL et de l'exposer à l'appelé.
COM est un protocole binaire permettant de résoudre ce problème. Mais vous devrez envelopper cette DLL python dans un wrapper COM. Et ajoutez du code du côté appelant aussi.
3
La solution standard consiste à intégrer l'interpréteur Python (qui est déjà une DLL C) dans votre application.
https://docs.python.org/extending/windows.html#using-dlls-in-practice
2
py2exe peut générer COM dll à partir du code python, en compilant et en intégrant le code python + interprète. AFAIK ne supporte pas encore les DLL normales. Pour cela, voir la réponse de dirkgently sur l'intégration de python.
Questions connexes
- 1. Utilisation de la DLL C++ gérée à partir de C#
- 2. Exemple d'utilisation de msilib pour créer un fichier .msi à partir d'un module python
- 3. python créer un objet tranche à partir de la chaîne
- 4. Comment utiliser un module C++ à partir d'une application Mono
- 5. À partir .exe à partir de Visual C++ 2005 dll
- 6. Étrange problème appelant un .DLL à partir de C#
- 7. C#: comment créer un type de délégué à partir de types de délégué?
- 8. créer un fichier .mat à partir de python
- 9. Comment créer une classe à partir de dll (constructeur en dll)? (С ++)
- 10. Y a-t-il un moyen de passer un type de structure à une fonction c
- 11. Puis-je créer un module d'extension Python en D (au lieu de C)
- 12. "Impossible de trouver un point d'entrée nommé [fonction] dans dll" (conversion de type C++ à C#)
- 13. Un ALGORITHME pour créer une liste à partir de "X" listes imbriquées en Python
- 14. Existe-t-il un moyen de générer un fichier DLL à partir de Visual Studio Express sans créer explicitement un projet DLL?
- 15. Appelez Python à partir de C++
- 16. Combinaison de fichiers de module en Python
- 17. Existe-t-il un moyen d'appeler une DLL non gérée (non COM) à partir de l'application C#?
- 18. Créer une DLL (sans point d'entrée) à partir de la ligne de commande avec MSVC
- 19. Polymorphisme C# - charger des classes à partir de fichiers DLL
- 20. Dépendance DLL et module HTTP
- 21. Comment créer un module python pour MySQL Workbench?
- 22. Comment exporter une définition de struct à partir d'un C .dll natif pour l'utiliser en C#
- 23. C#: Type.GetType appelé à partir d'une dll sur chaîne de type exe
- 24. Passer des paramètres de type de données C# à DLL écrits en C++?
- 25. Comment changer un nom de module Python?
- 26. Comment créer un objet enum à partir de son type et de son nom?
- 27. Créer une DLL: Comment utiliser une DLL pour créer une nouvelle DLL?
- 28. Comment appeler C# .dll à partir d'une application C++/CLI?
- 29. Retour du fichier à partir du module python
- 30. Comment créer une instance à partir d'une chaîne en C#?
+1: le moyen le plus simple – jfs