如何从C或C ++调用.pyc函数?

时间:2012-06-18 10:45:30

标签: c++ python c

我有.pyc文件我知道里面有函数。

我需要从C / C ++中调用这些函数 我尝试使用 PyImport_Import ,但它返回NULL。

pName = PyString_FromString("test");
pModule = PyImport_Import(pName );

如果我调用 pModule = PyImport_ImportModule(“py_ffile”); 那么它对.py文件工作正常。但我不想从.py调用函数。我想从.pyc文件中调用它。

3 个答案:

答案 0 :(得分:1)

Boost::Python C ++库可以帮助您实现C ++和Python编程语言之间的无缝互操作。

答案 1 :(得分:1)

这不是您要求的,但您可以考虑使用Cython。它会将您的代码编译为C,并且从C ++程序中使用它也没有问题。

答案 2 :(得分:1)

py文件所在的路径可能是未知的。如果您正在使用Boost Python,请尝试使用sys这样添加路径:

PyRun_SimpleString("import sys"); 
PyRun_SimpleString("sys.path.append(\"your path here\")");

或使用这个:

PySys_SetPath("your path here");

并且像这样,如果你直接使用python dll:

SetSysPath("your path here");

然后使用PyImport_Import

再试一次