Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在包含所有依赖项的c程序中嵌入python_Python_C - Fatal编程技术网

在包含所有依赖项的c程序中嵌入python

在包含所有依赖项的c程序中嵌入python,python,c,Python,C,我正在编写一个c应用程序,它将允许我在其中嵌入python模块。python模块负责通过rpyc库在远程机器上启动对python代码的远程过程调用。我的python模块将位于应用程序运行的同一位置。我假设我的c应用程序将在没有所需python库的机器上运行,例如rpyc。我想知道,在发布代码时,是否有一种方法可以将所有依赖项与模块捆绑在一起 我已经使用cython将python模块编译为.pyd,但这仍然需要安装所需的python库 我的c代码 int main(){ int argc

我正在编写一个c应用程序,它将允许我在其中嵌入python模块。python模块负责通过rpyc库在远程机器上启动对python代码的远程过程调用。我的python模块将位于应用程序运行的同一位置。我假设我的c应用程序将在没有所需python库的机器上运行,例如rpyc。我想知道,在发布代码时,是否有一种方法可以将所有依赖项与模块捆绑在一起

我已经使用cython将python模块编译为.pyd,但这仍然需要安装所需的python库

我的c代码

int main(){
    int argc = 2;
    wchar_t* argv[] = { (wchar_t *)"mypythonmodule", (wchar_t *)"-h", NULL };
    const char *module = argv[0];
    PyObject *pName, *pModule, *pFunc;
    PyObject *pArgs, *pValue;
    Py_Initialize();
    pName = PyUnicode_DecodeFSDefault(module);
    pModule = PyImport_Import(pName);
    Py_DECREF(pName);
    if (pModule != NULL) {
        pArgs = PyTuple_New(argc);
        for (int i = 0; i < argc; i++) {
            pValue = PyUnicode_FromString(argv[i]);
            PyTuple_SetItem(pArgs, i, pValue);
        }
        pFunc = PyObject_GetAttrString(pModule, "parse_args");
        PyObject_CallObject(pFunc, pArgs);
        Py_DECREF(pFunc);
        Py_DECREF(pArgs);
        //Py_DECREF(pValue);
        Py_Finalize();
    }
}
intmain(){
int argc=2;
wchar_t*argv[]={(wchar_t*)“mypythonmodule”,(wchar_t*)“-h”,NULL};
常量字符*模块=argv[0];
PyObject*pName、*pModule、*pFunc;
PyObject*pArgs,*pValue;
Py_初始化();
pName=PyUnicode\u decodefsfdefault(模块);
pModule=PyImport\u Import(pName);
Py_DECREF(pName);
if(pModule!=NULL){
pArgs=PyTuple_New(argc);
对于(int i=0;i