2017-04-14 63 views
0

我想用一個小的C/++程序在線程中運行幾個python腳本,但是我需要不同的python版本來運行這些腳本,因爲包mysqldb isn沒有在python3中工作,有些軟件包在python2中不可用。用一個C程序運行python腳本(不同的python版本)

#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; 
} 

或通過

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

你有任何意見或另一種方式來解決我的問題?

回答

0

您可以使用system()調用來執行您的python腳本,但是不需要在命令行中指定python可執行文件的版本。

您可以使用shebang。

使用#!/usr/bin/python3作爲腳本的第一行,您希望在需要使用python2運行的腳本中使用python3#!/usr/bin/python2運行腳本。

如果你正在使用windows,那麼請看看python launcher