Linux ARM64环境生成datasketches==4.0.0适配AWS Glue的WHL包方法
如何在Linux ARM64环境生成datasketches==4.0.0的WHL包用于AWS Glue Job
搞定ARM64上datasketches 4.0.0的WHL包其实不难,主要是官方没提供预编译的ARM版本,直接pip安装会因为编译环境问题失败。下面是一步步的实操方案,亲测适合Linux ARM64(包括AWS EC2 ARM实例),编译出来的包能直接用到AWS Glue Job里:
1. 先配齐编译依赖
datasketches依赖C++编译工具链和CMake,先把这些基础组件装上:
- 如果你用Debian/Ubuntu系ARM64:
sudo apt update && sudo apt install -y build-essential cmake python3-dev python3-pip
- 如果你用Amazon Linux 2 ARM64:
sudo yum update && sudo yum install -y gcc gcc-c++ cmake python3-devel python3-pip
2. 升级pip和编译工具
旧版本的pip、setuptools可能会触发PEP 517编译错误,先把这些工具升级到最新版:
pip3 install --upgrade pip setuptools wheel cmake
3. 拉取指定版本的datasketches源码
直接用pip安装会临时拉取源码但环境不可控,手动克隆指定tag的源码更稳妥:
git clone https://github.com/apache/datasketches-python.git cd datasketches-python # 切换到4.0.0版本的代码 git checkout tags/4.0.0 -b build-4.0.0
4. 编译生成ARM64专属WHL包
用pip的wheel命令编译,这个命令会自动处理CMake配置并生成适配当前架构的轮子:
pip3 wheel . --no-deps -w dist/
执行完后,你会在当前目录的dist/文件夹下看到类似datasketches-4.0.0-cp37-cp37m-linux_aarch64.whl的文件(文件名里的Python版本号会和你当前用的Python对应,要确保和AWS Glue Job用的Python版本一致,比如Glue 3.0用Python3.7,Glue 4.0用Python3.9)。
5. 验证并上传到AWS Glue可用的存储
- 先在本地验证包可以正常安装:
pip3 install dist/datasketches-4.0.0-*.whl
- 把生成的WHL包上传到你的AWS S3桶,然后在AWS Glue Job的“Python库路径”中填写这个S3文件的路径,Job运行时就会自动加载这个预编译的ARM64兼容包了。
常见坑点排查
- 如果编译时还是报CMake错误,检查你的CMake版本是否≥3.12(datasketches 4.0.0要求的最低版本),用
cmake --version查看,不够的话可以手动编译安装新版本CMake。 - 一定要保证编译用的Python版本和Glue Job用的版本完全一致,否则会出现“不兼容的ABI”错误。
内容的提问来源于stack exchange,提问作者Fabrizio Bellomo
相关产品推荐
相关产品推荐

