0
pybind11でpythonサブモジュールを作成するには?pybind11で既存のpythonモジュールにC++関数を追加
私はPythonの例(https://github.com/pybind/python_example)をクローンして修正しました。以下はディレクトリツリーです。
*
|
+-- src
| |
| +-- example.cpp
|
+-- setup.py
|
+-- python_example
|
+-- __init__.py
|
+-- cxx
|
+-- __init__.py
setup.pyは次の行があります
ext_modules = [
Extension(
'python_example.cxx',
['src/main.cpp'],
include_dirs=[
# Path to pybind11 headers
get_pybind_include(),
get_pybind_include(user=True),
"include", # the include folder
],
language='c++'
),
]
setup(
...
packages=setuptools.find_packages(),
...
)
それはドットで名前を取ることができないので、以下は動作しません。
PYBIND11_PLUGIN(python_example.cxx) {
...
}
次のコードも機能しません。
PYBIND11_PLUGIN(python_example) {
py::module m = py::module::import("python_example.cxx");
m.def("add", &add, R"pbdoc(
Add two numbers
Some other explanation about the add function.
)pbdoc");
}
また、これは動作しません:
py::module m2 = (py::module) py::module::import("python_example").attr("cxx");
m2.def("add", &add, R"pbdoc(...
この作業を行うには?
ホープ存在する...これが関係しているように見える:http://pybind11.readthedocs.io/en/stable/advanced/misc。 html#partitioning-code-over-multiple-extension-modules –
解決策は異なると思います;)モジュールをパッケージ以外のものにするなど、 、2番目は何ですか;サンプルコードを追加することをお勧めします)? – krassowski
私はすでに解決策を見つけました。 –