Je m'essaye aux appels d'un script Python dans un code C++ et je suis tombé sur la page suivante de la doc officielle de Python : http://docs.python.org/3/extending/e...pure-embedding

Malheureusement ça ne fonctionne pas comme voulu et je bloque notamment à la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
pFunc = PyObject_GetAttrString(pModule, argv[2]);
Voici ce que j'ai actuellement :

test1.cpp
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
36
37
38
39
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <Python.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    PyObject *pName, *pModule, *pDict, *pFunc;
    PyObject *pArgs, *pValue;
    int i;
 
    if (argc < 3) {
        fprintf(stderr,"Usage: call pythonfile funcname [args]\n");
        return 1;
    }
 
    Py_Initialize();
    pName = PyUnicode_FromString(argv[1]);
 
    pModule = PyImport_Import(pName);
    Py_DECREF(pName);
 
    if (pModule != NULL) {
        pFunc = PyObject_GetAttrString(pModule, argv[2]);
 
        if (pFunc && PyCallable_Check(pFunc)) {
            cout << "Appel de la fonction " << argv[2] << " du module " << argv[1] << " réussi" << endl;
        }
        else
        {
            cout << "Erreur lors de l'appel de la fonction " << argv[2] << " du module " << argv[1] << endl;
        }
    }
    // je m'arrête volontairement là car je ne parviens pas à passer cette étape.
    Py_Finalize();
    return 0;
}
test.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
def functTest(): 
    print("contrôle depuis Python : ok");
test1.pro
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SOURCES += main.cpp
 
LIBS += -L /usr/lib/python3.3/config-3.3m-x86_64-linux-gnu -lpython3.3
INCLUDEPATH += -I /usr/include/python3.3m/
Je suis assez ennuyé car il s'agit de la doc officielle et pourtant ça merdouille...

Quelqu'un aurait-il une idée ?

D'avance merci

++

J