部署Python需要花费很长时间来构建加密车轮

2024-05-28 11:16:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在Heroku中运行一个Django Python项目,为了支持Python加密软件包,我的dockerfile包含了首先为该软件包安装非Python依赖项的说明:

run apk add openssl-dev cargo

然后,我的构建日志显示部署构建了各种轮子。构建加密控制盘需要几分钟:

  Building wheel for cryptography (PEP 517): started
  Building wheel for cryptography (PEP 517): still running...
  Building wheel for cryptography (PEP 517): still running...
  Building wheel for cryptography (PEP 517): finished with status 'done'
  Created wheel for cryptography: filename=cryptography-3.4.7-cp38-cp38-linux_x86_64.whl size=534047 sha256=8c3212278fa23bad7ecfbc54d036e8d35ba9308479d87e8ec39697aed26095dc

是否有任何类型的预编译控制盘或buildpack或类似工具可用于加快部署速度


Tags: 项目djangorundockerfileforheroku部署running
1条回答
网友
1楼 · 发布于 2024-05-28 11:16:28

根据您的apk命令,您可能正在运行Alpine Linux。Alpine将musl用于其libc实现,这在历史上阻止了cryptography项目上载二进制轮子。然而,随着PEP 656的接受(以及auditwheel、pypa/manylinux容器和pypa/仓库允许上传的大量后续工作),我们现在可以上传musllinuxwheels了cryptography在2021年9月19日上传了一个加密车轮3.4.8(x86_64 arch)

要获得此控制盘,有两个先决条件:

  1. 您需要升级到最新版本pip。任何早于21.2.4的版本都不支持musllinux控制盘
  2. 您需要确保正在安装加密>;=3.4.8. 旧版本没有这些控制盘

如果您满足这些要求,那么pip install cryptography将不再需要Alpine上的编译器(rust或gcc/clang)

相关问题 更多 >