ImportError: No module named <module_name> with pybind11 on MacOS

ImportError: No module named <module_name> with pybind11 on MacOS

我正在尝试将使用 pybind11 创建的 C++ 模块导入 python 脚本。 目录结构为:

pybind_test:

    main.cpp
    build
    CMakeLists.txt
    test.py
    pybind11 (github repo clone)


构建成功并创建文件module_name.cpython-39-darwin.so。然而,当 运行 test.py 我得到:

File "../test.py", line 2, in <module>
    from build.module_name import *
ImportError: No module named build.module_name

我的 CMakeLists 文件:

cmake_minimum_required(VERSION 3.4...3.18)
set(CMAKE_CXX_STANDARD 17)
project(pybindtest)
add_subdirectory(pybind11)
pybind11_add_module(module_name main.cpp)

如何像普通 python 模块一样将此模块导入 python?

如您所见,已编译的库必须位于 Python 可执行文件(您通过将 test.py 移至构建目录实现的路径)可访问的路径(根据文件路径),其中你编译的库是)。 您还可以将已编译的库移动到 Python 的 site-packages 文件夹,其他模块都存储在该文件夹中。