有人可以解释 pybind11 安装吗?
Can someone explain the pybind11 install?
pybind11 文档总体上很好,但有一个地方不是很好,它解释了安装过程以及使用 cmake 获取和 运行ning 示例的过程。
我已经设法弄清楚如何获取和构建示例。但这会导致更多问题。几乎所有示例都依赖于将 pybind11 存储库下载到示例文件夹中,并将存储库的根文件夹包含在 cmake 运行 中(根文件夹包含一个 cmakelists.txt 文件)。当您使用 pip 或 conda 安装 pybind11 时,该 repo 的内容与添加到 python 环境的内容有很多共同点。但是文件夹组织完全不同。
所以我很好奇:
- 为什么不同?
- 有没有一种方法可以使用环境安装中的内容,这样您就不必
下载 repo 以便使用 cmake 构建示例?
- 否则,将 pybind11 存储库放在一个公共位置的最佳方法是什么,这样就不必为了构建示例或为了提供重要的附加 cmake 而将其复制到各处自己代码的功能?
总的来说,我真的很不理解这些事情的 "how this works" 方面,所以这对我很有帮助。
不确定你提到了哪些示例,但是要在你的系统中安装 pybind11 并在不同的项目中使用它,只需按照安装基于 CMake 的包的标准过程进行操作即可
mkdir build
cd build
cmake ../ # optionally you can specify -DPYBIND11_PYTHON_VERSION=<your python version>
make
sudo make install
然后在您的其他项目之一中 CMakeLists.txt
您可以使用它,例如像这样:
find_package(pybind11 CONFIG REQUIRED)
message(STATUS "Found pybind11 v${pybind11_VERSION}: ${pybind11_INCLUDE_DIRS}")
add_library(<name of your lib> MODULE <your sources>)
target_link_libraries(mylib pybind11::module)
有关更多 CMake 命令,请参阅 pybind11Config.cmake。
然后,如果您不想将它安装到您的系统中,您可以使用 add_subdirectory
而不是 find_package
将 pybind11
存储库嵌入到您的项目树中。所有提供的功能都将相同。该包设计精良,它会检测它是否用作主项目以及是否定义了 INSTALL 目标。
所以我猜你的最后两个问题得到了回答?
pybind11 文档总体上很好,但有一个地方不是很好,它解释了安装过程以及使用 cmake 获取和 运行ning 示例的过程。
我已经设法弄清楚如何获取和构建示例。但这会导致更多问题。几乎所有示例都依赖于将 pybind11 存储库下载到示例文件夹中,并将存储库的根文件夹包含在 cmake 运行 中(根文件夹包含一个 cmakelists.txt 文件)。当您使用 pip 或 conda 安装 pybind11 时,该 repo 的内容与添加到 python 环境的内容有很多共同点。但是文件夹组织完全不同。
所以我很好奇:
- 为什么不同?
- 有没有一种方法可以使用环境安装中的内容,这样您就不必 下载 repo 以便使用 cmake 构建示例?
- 否则,将 pybind11 存储库放在一个公共位置的最佳方法是什么,这样就不必为了构建示例或为了提供重要的附加 cmake 而将其复制到各处自己代码的功能?
总的来说,我真的很不理解这些事情的 "how this works" 方面,所以这对我很有帮助。
不确定你提到了哪些示例,但是要在你的系统中安装 pybind11 并在不同的项目中使用它,只需按照安装基于 CMake 的包的标准过程进行操作即可
mkdir build
cd build
cmake ../ # optionally you can specify -DPYBIND11_PYTHON_VERSION=<your python version>
make
sudo make install
然后在您的其他项目之一中 CMakeLists.txt
您可以使用它,例如像这样:
find_package(pybind11 CONFIG REQUIRED)
message(STATUS "Found pybind11 v${pybind11_VERSION}: ${pybind11_INCLUDE_DIRS}")
add_library(<name of your lib> MODULE <your sources>)
target_link_libraries(mylib pybind11::module)
有关更多 CMake 命令,请参阅 pybind11Config.cmake。
然后,如果您不想将它安装到您的系统中,您可以使用 add_subdirectory
而不是 find_package
将 pybind11
存储库嵌入到您的项目树中。所有提供的功能都将相同。该包设计精良,它会检测它是否用作主项目以及是否定义了 INSTALL 目标。
所以我猜你的最后两个问题得到了回答?