2

私はその中に関数を知っている.pycファイルを持っています。

これらの関数を C/C++ から呼び出す必要があります。PyImport_Importを使用してみましたが、NULL が返されます。

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

pModule = PyImport_ImportModule("py_ffile");を呼び出した場合 その後、.py ファイルに対しては正常に動作します。しかし、.py から関数を呼び出したくありません。.pyc ファイルから呼び出したい。

4

3 に答える 3

1

これはまさにあなたが求めているものではありませんが、Cythonの使用を検討できます。コードは C にコンパイルされ、C++ プログラムから問題なく使用できます。

于 2012-06-18T12:10:28.567 に答える
1

Boost::Python C++ と Python プログラミング言語間のシームレスな相互運用性を可能にする C++ ライブラリであるが役立つかもしれません。

于 2012-06-18T10:49:20.287 に答える
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 に答える