Bonjour,
Je débute en programmation C++ et Python, je cherche un moyen d'exécuter un script Python depuis du code C++.
Après de nombreuses recherches, je suis parvenu à installer et configurer Python25.
Voici l'état actuel de mon code :
Fichier cpp :
log.py :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 #include <Python.h> #include <fstream> #include <iostream> using namespace std; int main() { ///Test d'existance du fichier ifstream fichier("log.py"); if (fichier.fail()) { cout << "Fichier de script introuvable : " << "log.py" <<"\n"; return 0; } ///Lance le script cout << "\n--- Execution du script : " << "log.py" <<" ---\n"; // Ouvre le script python a executer FILE* pyFile = fopen("log.py", "r"); Py_Initialize(); //Test : ecriture d'une commande Python PyRun_SimpleString( "print \"Bonjour\""); // Execute le script PyRun_AnyFile(pyFile, "log.py"); Py_Finalize(); return 1; }
La compilation marche, mais j'ai un plantage lors de l'execution. Ce plantage est provoqué par la ligne "PyRun_AnyFile(pyFile, "log.py");". Si celle ci est passée en commentaire, on s'apperçoit que la ligne "PyRun_SimpleString( "print \"Bonjour\"");" fonctionne bien. L'erreur ne semble donc pas venir de l'environnement Python.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2print "Log : Bonjour"
Aurais-je oublié certaines déclarations ou initialisations dans mon code C++? Est-ce que le script Python nécessite plus d'information pour fonctionner de cette manière?
Merci pour votre aide =]
Partager