Langage C pour voir et se souvenir de la partie 2 Appeler le langage C à partir de la chaîne Python (argument)

capi.py


import myModule as capi
print(capi.Message("Bonjour, Japon"))

Exécuter
capi>python capi.py
Bonjour, Japon
Bonjour, Japon

capilib.c


#include <Python.h>

static PyObject* Message(PyObject* self, PyObject* args){
    char* str;
    if (!PyArg_ParseTuple(args, "s",&str)){
        return NULL;
    }
    printf("%s\n",str);
    return Py_BuildValue("s", str);
}
// Function Definition struct
static PyMethodDef myMethods[] = {
    { "Message", Message, METH_VARARGS, "Prints Message"},
    { NULL }
};
static struct PyModuleDef myModule = {
    PyModuleDef_HEAD_INIT,"myModule","C API Module",-1,myMethods
};
PyMODINIT_FUNC PyInit_myModule(void){
    return PyModule_Create(&myModule);
}

** Point d'attention **

char* str;
//Capturer les arguments
if (!PyArg_ParseTuple(args, "s",&str)){
    return NULL;
}
//Créer une valeur de retour
return Py_BuildValue("s", str);

--PyArg_ParseTuple (args, "s", & str) lit la chaîne d'argument "s" dans str.

Recommended Posts

Langage C pour voir et se souvenir de la partie 2 Appeler le langage C à partir de la chaîne Python (argument)
Langage C pour voir et se souvenir de la partie 4 Appelez le langage C depuis Python (argument) double
Langage C pour voir et se souvenir de la partie 5 Appel du langage C à partir du tableau Python (argument)
Langage C pour voir et se souvenir de la partie 3 Appelez le langage C depuis Python (argument) c = a + b
Langage C pour voir et se souvenir de la partie 1 Appeler le langage C depuis Python (bonjour le monde)
Aller au langage pour voir et se souvenir de la partie 8 Appeler le langage GO à partir de Python
Aller à la langue pour voir et se souvenir du langage Partie 7 C en langage GO
Appeler le langage C depuis Python (python.h)
Appeler des fonctions du langage C depuis Python pour échanger des tableaux multidimensionnels
[Python] Comment appeler une fonction de c depuis python (édition ctypes)
Appelez Matlab depuis Python pour optimiser
Appeler C depuis Python avec DragonFFI
Essayez de créer un module Python en langage C
Aller à la langue pour voir et se souvenir du langage Partie 7 C en langage GO
Appeler popcount depuis Ruby / Python / C #
Introduction à Protobuf-c (langage C ⇔ Python)
Python pour passer d'une autre langue
Appeler C / C ++ depuis Python sur Mac
[Python] Hit Keras depuis TensorFlow et TensorFlow depuis c ++ pour accélérer l'exécution.
Comment obtenir une chaîne à partir d'un argument de ligne de commande en python
Appelez votre propre bibliothèque partagée en langage C à partir de Python à l'aide de ctypes
[Il n'est pas trop tard pour apprendre Python à partir de 2020] Partie 3 Python Language Basic (1)
De Python à l'utilisation de MeCab (et CaboCha)
Portage et modification du solveur de doublets de python2 vers python3.
Communication socket par langage C et Python
Générer un langage C à partir d'une expression S avec Python
Essayez de porter le programme «Programmation informatique numérique FORTRAN77» vers C et Python (partie 1)
Comment générer une séquence en Python et C ++
Écriture de journaux dans un fichier CSV (Python, langage C)
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
Essayez de porter le programme "FORTRAN77 Numerical Computing Programming" vers C et Python (partie 3)
Appelez Rust de Python pour accélérer! Tutoriel PyO3: Partie des classes d'habillage ➀
Essayez de porter le programme "FORTRAN77 Numerical Computing Programming" vers C et Python (partie 2)
Appelez Rust de Python pour accélérer! Tutoriel PyO3: partie des classes d'emballage ➁
Appel de scripts Python à partir de Python intégré en C ++ / C ++
Liste de code Python à déplacer et à mémoriser
Je veux créer du code C ++ à partir de code Python!
Un moyen simple d'appeler Java depuis Python
L'histoire du portage du code de C vers Go (et vers la spécification du langage)
Essayez de créer un module Python en langage C
python> datetime> De la chaîne de date (format ISO: 2015-12-09 12:40:08) au type datetime
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Introduction au langage Python
Appelez Rust de Python pour accélérer! Tutoriel PyO3: Emballage d'une partie de fonction simple
Appelez Rust de Python pour accélérer! Tutoriel PyO3: Emballage d'une partie de fonction simple ➁
[Introduction à cx_Oracle] (Partie 6) Mappage des types de données DB et Python
Apprenez les bases et les astuces des expressions canoniques Python à partir de zéro
Comment se connecter à diverses bases de données à partir de Python (PEP 249) et SQL Alchemy
J'ai essayé d'illustrer le temps et le temps du langage C
Orienté objet en langage C: "○ ✕ game" a été refacturé et porté en Python
Utilisez un langage de script pour une vie C ++ confortable-OpenCV-Port Python vers C ++ -
Transmettez les données OpenCV de la bibliothèque C ++ d'origine à Python
Comment appeler Python ou Julia à partir de Ruby (implémentation expérimentale)
Appeler CPLEX depuis Python (DO cplex)
Publier de Python vers Slack
Indentation Python et format de chaîne
Flirter de PHP à Python
Anaconda mis à jour de 4.2.0 à 4.3.0 (python3.5 mis à jour vers python3.6)
Passer de python2.7 à python3.6 (centos7)
Connectez-vous à sqlite depuis python
Porté du langage R de "Sazae-san's Janken Data Analysis" vers Python