如何在 'cibuildwheel' 在 GitHub 操作中创建的 docker 图像上安装 Eigen3

How to install Eigen3 on the docker image created by 'cibuildwheel' in GitHub actions

我目前正在开发一个 C++/Python 包,使用 pybind11 作为 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(我用这个命令设置了 CIBW_BEFORE_ALL_LINUXCIBW_BEFORE_BUILD_LINUX)。

可能有一个非常简单的解决方案(除了下载源代码),但不幸的是我还没有弄明白,非常感谢您的帮助。

使用yum代替apt-get

yum install eigen3-devel

根据 OP esocrats 对问题的先前编辑。