python - 如何在 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 build
或python -m build --sdist
(取决于我是否只构建源代码发行版)
这很好用,我可以使用pip install -e ./
.
但是,当使用 Github 操作设置 CI 时,cibuildwheel
我无法在 docker 中安装(我libeigen3-dev
使用此命令apt-get
设置了CIBW_BEFORE_ALL_LINUX
and )。CIBW_BEFORE_BUILD_LINUX
可能有一个非常简单的解决方案(除了下载源代码),但不幸的是我无法弄清楚并且非常感谢一些帮助。
另外,这是我关于堆栈溢出的第一篇文章,所以如果我遗漏了一些必要的信息来解决这个问题,我很抱歉。
编辑:找到解决方案-> 使用yum install eigen3-devel
而不是 apt-get
解决方案
推荐阅读
- r - 是否可以做自己的高效描述性统计功能?-R
- reactjs - 使用 React、SASS 和 webpack 合并 CSS 模块中的类
- python - 使用 Scrapy 从多个网页中抓取数据
- php - 未找到 Laravel AWS S3 适配器类
- javascript - 如何在 discord.js 中设置自定义状态?
- amazon-web-services - 我们可以在 AWS Pinpoint 的 2-way SMS 中保存客户端 SMS 响应吗?
- amazon-redshift - 有什么方法可以在红移服务器上异步运行查询?
- python - Pandas 在对行进行操作后重置索引
- javascript - Chrome Devtools中JavaScript字符串中的未知字符
- c - msgget 功能未实现