python - Docker 中的 Python ARM - 安装要求需要很长时间
问题描述
我想运行一个里面有一些 Python 机器人的 Docker 容器。这些脚本需要 pandas、numpy 和 matplotlib 等库。在 x86 环境中一切正常,但在 Arm 环境中构建映像需要很长时间。据我了解,似乎需要为 Arm 编译库,而不仅仅是下载编译后的文件。我试图找到一种方法来避免这一切。
- Matplotlib、pandas、numpy:它们是相当重的包,但我只需要一些功能。这些库是精简版吗?
- 有什么方法可以将编译后的内容存储在管道某处的永久缓存中?(我同时使用 GitHub 和 GitLab 来构建它)
任何帮助表示赞赏问候
解决方案
正如@Itamar Turner-Trauring 所提到的,matplotlib
,numpy
和pandas
更多的库存储轮子aarch64
以及x86
. 就我而言,默认情况下pip
是下载x86
轮子,然后它必须在构建过程中编译它们,这需要很长时间。
将pandas
我使用的版本从1.1.5
to更改后1.3.5
,pip 日志发生了变化
从:
Downloading https://****/pypi/download/pandas/1.1.5/pandas-1.1.5.tar.gz (5.2 MB)
至:
Downloading https://****/pypi/download/pandas/1.3.5/pandas-1.3.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.9 MB)
整个构建时间从 58 分钟变为 8 分钟。
推荐阅读
- javascript - 如何使用 JavaScript 将 JSON 中的 PHP 时间戳转换为日期和时间
- php - 将 html 输入作为 php 的变量
- git - 如何修复 git-lfs 服务器(gitlab)上损坏的文件?
- javascript - JavaScript中反射的概念是什么?
- android - Android 服务在 BOOT 上没有从 JobIntentService 开始
- java - JDeveloper 不允许创建新的 WebTier 项目
- twitter-bootstrap - Bootstrap 4 - 中心按钮
- java - 无论如何在apache httpclient中重试/重复消费的POST请求?
- java - 将 json 有效负载值合并到 Object
- c# - 如何在没有数据库的情况下将业务对象与 RDLC 设计器绑定?