首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能解释一下pybind11的安装吗?

有人能解释一下pybind11的安装吗?
EN

Stack Overflow用户
提问于 2020-04-13 20:34:27
回答 1查看 2K关注 0票数 5

pybind11文档通常是很好的,但是有一个方面不是这样的,那就是解释安装过程以及使用cmake获取和运行示例的过程。

我已经想出了如何获取和构建示例。但这会导致更多的问题。几乎所有示例都依赖于将pybind11回购下载到示例文件夹中,并将回购的根文件夹包含在cmake中(根文件夹包含一个cmakelists.txt文件)。该回购的内容与使用pip或conda安装pybind11时添加到python环境中的内容有很多相同之处。但是文件夹的组织完全不同。

所以我很好奇:

  • 为什么会有区别?
  • 是否有一种方法可以使用环境中的内容--安装方式--您也不必下载回购文件才能使用cmake构建示例?
  • 如果做不到这一点,那么将pybind11回购放在一个公共地方的最佳方式是什么,这样就不必在各地复制它来构建示例,或者为了为自己的代码提供重要的新增cmake功能?

总的来说,我真的很不舒服,不了解这些东西的“工作原理”,所以这真的会对我有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-13 20:58:13

不确定您提到了哪些示例,但是要在系统中安装pybind11并将其用于不同的项目,只需遵循安装基于CMake的软件包的标准过程。

代码语言:javascript
复制
mkdir build
cd build
cmake ../  # optionally you can specify -DPYBIND11_PYTHON_VERSION=<your python version>
make
sudo make install

然后,在另一个项目的CMakeLists.txt中,您可以使用它,例如:

代码语言:javascript
复制
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

然后,如果您不想在您的系统中安装它,您可以将pybind11回购嵌入到您的项目树中,使用add_subdirectory而不是find_package。所有提供的功能将是相同的。这个包设计得很好,它检测它是否被用作主项目,或者定义了安装目标。

所以我想你最后的两个问题已经回答了?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61196272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档