2017-04-14 60 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