2017-04-14 1 views
0

Ich möchte ein paar Python-Skripte in Threads mit einem kleinen C/++ Programm ausführen, aber ich brauche verschiedene Python-Versionen, um diese Skripts auszuführen, weil das Paket MySQLdb isn ist Funktioniert nicht in Python3 und einige Pakete sind in Python2 nicht verfügbar.Führen Sie Python-Skripte (verschiedene Python-Versionen) mit einem C-Programm

#include <stdio.h> 
#include <python2.7/Python.h> 
#include <python3/Python.h> 

void main(int argc, char *argv[]) 
{ 
    FILE* file; 

    Py_SetProgramName(argv[0]); 
    Py_Initialize(); 
    PySys_SetArgv(argc, argv); 
    file = fopen("myscript.py","r"); 
    PyRun_SimpleFile(file, "myscript.py"); 
    Py_Finalize(); 

    return; 
} 

Oder über

system ("python2.7 myscript1.py arg1 arg2"); 
system ("python3 myscript2.py arg1 arg2"); 

Haben Sie irgendwelche Ideen haben oder einen anderen Weg, um mein Problem zu lösen?

Antwort

0

Sie können system() Aufruf verwenden, um Ihre Python-Skripts auszuführen, aber es ist nicht erforderlich, die Version von Python ausführbar in der Befehlszeile anzugeben.

Sie können Shebang verwenden.

Verwenden Sie #!/usr/bin/python3 als die erste Zeile für Skripte, die Sie mit python3 und #!/usr/bin/python2 in Skripts ausführen möchten, die Sie mit Python2 ausführen möchten.

Wenn Sie an Windows arbeiten, dann werfen Sie bitte einen Blick auf python launcher

Verwandte Themen