2

我有 .pyc 文件,我知道其中的功能。

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

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

如果我调用pModule = PyImport_ImportModule("py_ffile"); 然后它适用于 .py 文件。但我不想从.py 调用函数。我想从 .pyc 文件中调用它。

4

3 回答 3

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

于 2013-08-28T08:47:56.747 回答
1

这不完全是您所要求的,但您可以考虑使用Cython。它会将您的代码编译为 C,您可以毫无问题地从 C++ 程序中使用它。

于 2012-06-18T12:10:28.567 回答
1

Boost::Python一个 C++ 库,它可以在 C++ 和 Python 编程语言之间实现无缝互操作性,可能会对您有所帮助。

于 2012-06-18T10:49:20.287 回答