我有.pyc文件我知道里面有函数。
我需要从C / C ++中调用这些函数 我尝试使用 PyImport_Import ,但它返回NULL。
pName = PyString_FromString("test");
pModule = PyImport_Import(pName );
如果我调用 pModule = PyImport_ImportModule(“py_ffile”); 那么它对.py文件工作正常。但我不想从.py调用函数。我想从.pyc文件中调用它。
答案 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