Je souhaite placer une bibliothèque C (pure C c'est-à-dire non C++) existante dans Python afin de pouvoir l'appeler à partir de scripts Python. Quelle approche parmi les différentes disponibles (C Api, SWIG etc.) serait la plus appropriée?Interopérabilité Python C
Répondre
aller avec Ctypes, cela fait partie de la distribution standard et fonctionne très bien. fondamentalement, vous pouvez envelopper les structures C et les types dans les classes python, ainsi que des fonctions. Certains types et fonctionnalités sont déjà fournis par la bibliothèque.
mises en garde couple cependant: passer des pointeurs triples à des routines C est pas évident (si vous devez), et je ne pouvais pas le faire fonctionner avec les bibliothèques statiques sur Linux, DLL et objets partagés sont très bien.
Merci inconnu. Je ne savais même pas que les ctypes existaient. Il semble plus simple à utiliser et pourtant tout aussi efficace que les autres. –
SWIG est idéal pour ce faire. Voici un exemple de tutoriel: http://www.swig.org/Doc1.3/Python.html.
Puisque votre code est "pur" C, vous pouvez utiliser Pyrex/Cython. Ce n'est pas un problème de vote et Cython a déjà été mentionné. Je suis juste en train de clarifier pourquoi c'est un meilleur choix pour pur C.
- 1. Interopérabilité C# -Excel
- 2. Interopérabilité Objective-C et C
- 3. interopérabilité bool et C/C++
- 4. Interopérabilité cryptographie Java et C++
- 5. C# excel formule glisser interopérabilité
- 6. Interopérabilité COM Com
- 7. COM à .NET interopérabilité
- 8. Interopérabilité PHP et Java
- 9. interopérabilité .NET Compact COM
- 10. Interopérabilité Java et .Net
- 11. Windows.Forms et gtk # interopérabilité?
- 12. Messagerie interopérabilité entre applications C# et VB6 mdi
- 13. Interopérabilité très lente avec Word dans l'application C#
- 14. Interopérabilité entre System.Windows.Forms.Application et System.Windows.Application
- 15. Interopérabilité inter-plateformes Bluetooth Bluetooth
- 16. Java/Scala (profond) collections interopérabilité
- 17. Interopérabilité WCF pour iPhone/.NET
- 18. Interopérabilité JSR 330 et Guice
- 19. VS2008 exe-VC6 dll interopérabilité
- 20. COM Interopérabilité avec .Net - méthodes/propriétés manquantes
- 21. Interopérabilité en utilisant Spring et Hessian? C'est possible?
- 22. Crypto API <->. Interopérabilité .NET RSA
- 23. Interopérabilité entre Java et Clojure et création d'interfaces graphiques
- 24. variable python c
- 25. Python C# conversion
- 26. C++ iostreams et python
- 27. Python en code C?
- 28. C/Python Socket Performance?
- 29. Python et couplage C
- 30. Script en C# (python)
3 réponses, 3 suggestions différentes. pas exactement ce que vous espériez je devinerais;) –
Suggérer de fermer comme subjectif et argumentatif. Tout ce qui est les meilleures questions sont comme ça. – whatnick