使用一个C程序运行python脚本(不同的python版本)

时间:2017-04-14 11:05:33

标签: python c++ c python-2.7 python-3.x

我想在带有小型C / ++程序的线程中运行一些python脚本,但是我需要不同的python版本来运行这些脚本,因为MySQLdb包在python3中不起作用而某些包不可用在python2中。

#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");

您有任何想法或其他方法来解决我的问题吗?

1 个答案:

答案 0 :(得分:0)

您可以使用system()调用来执行您的python脚本,但不需要在命令行上指定python可执行文件的版本。

你可以使用shebang。

使用#!/usr/bin/python3作为您希望在使用python2运行的脚本中使用python3#!/usr/bin/python2运行的脚本的第一行。

如果您正在使用Windows,请查看python launcher