如何在 GitHub 操作中由“cibuildwheel”创建的 docker 镜像上安装 Eigen3

问题描述

我目前正在使用 pybind11 为 Python 绑定开发 C++/Python 包。这个项目是混合的:它有部分用 Python 编写,其他部分用 C++ 编写并编译为外部模块。

项目使用 cmake>1.7。项目的目录结构大致是这样:

PythonProject
 -> python_sources
 -> include [cpp headers]
 -> src [cpp sources]
   --> module.cpp [pybind11 bindings declaration]
   --> cpp_sources [where the implementation of the headers goes]

该项目也依赖于 Eigen3。

我有项目设置,因此在构建轮子时首先编译 cpp 模块,然后将 *.so(如果是 macOS)复制到 python_sources

在我的机器 (macOS 11.2 with XCODE 12) 中,我可以使用

生成轮子

python -m buildpython -m build --sdist(取决于我是否只构建源代码分发)

这很有效,我可以使用 pip install -e ./ 测试安装。

但是,在使用 Github 操作和 cibuildwheel 设置 CI 时,我无法在 docker 中使用 libeigen3-dev 安装 apt-get(我设置了 CIBW_BEFORE_ALL_LINUXCIBW_BEFORE_BUILD_LINUX 使用此命令)。

可能有一个非常简单的解决方案(除了下载源代码),但不幸的是我无法弄清楚,非常感谢一些帮助。

另外,这是我关于堆栈溢出的第一篇文章,所以如果我遗漏了一些解决这个问题的必要信息,我很抱歉。


编辑:找到解决方案 -> 使用 yum install eigen3-devel 而不是 apt-get

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)