如何在 '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 build
或 python -m build --sdist
(取决于我是否只构建源代码分发版)
这很好用,我可以用 pip install -e ./
测试安装。
但是,当使用 Github 操作和 cibuildwheel
设置 CI 时,我无法在 docker(我用这个命令设置了 CIBW_BEFORE_ALL_LINUX
和 CIBW_BEFORE_BUILD_LINUX
)。
可能有一个非常简单的解决方案(除了下载源代码),但不幸的是我还没有弄明白,非常感谢您的帮助。
使用yum
代替apt-get
:
yum install eigen3-devel
根据 OP esocrats 对问题的先前编辑。
我目前正在开发一个 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 build
或 python -m build --sdist
(取决于我是否只构建源代码分发版)
这很好用,我可以用 pip install -e ./
测试安装。
但是,当使用 Github 操作和 cibuildwheel
设置 CI 时,我无法在 docker(我用这个命令设置了 CIBW_BEFORE_ALL_LINUX
和 CIBW_BEFORE_BUILD_LINUX
)。
可能有一个非常简单的解决方案(除了下载源代码),但不幸的是我还没有弄明白,非常感谢您的帮助。
使用yum
代替apt-get
:
yum install eigen3-devel
根据 OP esocrats 对问题的先前编辑。