首页 > 解决方案 > 如何在 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 操作设置 CI 时,cibuildwheel我无法在 docker 中安装(我libeigen3-dev使用此命令apt-get设置了CIBW_BEFORE_ALL_LINUXand )。CIBW_BEFORE_BUILD_LINUX

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

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


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

标签: pythonc++github-actionseigen3pybind11

解决方案


推荐阅读