我正在尝试为 aarch64
架构的包(
lap)构建 python 轮子。我的主机环境是 WSL2,带有 Ubuntu 20.04 和
docker
。目标是 Buildroot GNU/Linux
。因此目标上没有可用的编译器。我的目标是使用 aarch64
为 qemu
设置交叉构建环境。如通过仿真在 x86 上运行 AArch64 本机容器中所述,我们可以使用可在 AArch64 上运行的容器化环境,通过 QEMU 模拟器构建符合当前规范的轮子。我正在做的步骤:
sudo apt-get install qemu binfmt-support qemu-user-static
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker run --rm -t arm64v8/ubuntu uname -m
并返回
aarch64
所以,我相信安装成功,仿真正在运行。另外,
qemu-aarch64-static
可以在
/usr/bin/
中使用
WSL2
中)和
cd lap/
,它包含
setup.py
,但是当我执行以下命令来构建轮子时
docker run --rm -v `pwd`:/io quay.io/pypa/manylinux2014_aarch64 bash -c '/opt/python/cp38-cp38/bin/python ./setup.py bdist_wheel'
```
WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v4) and no specific platform was requested
/opt/python/cp38-cp38/bin/python: can't open file './setup.py': [Errno 2] No such file or directory
```
现在我不知道如何将qemu-aarch64-static
传递给上面的
docker
命令?任何人都可以告诉我如何解决这个问题并使用 QEMU 构建 python 轮子吗?
提前致谢。
P.S:如果缺少任何信息,请告诉我。
因为我不太了解docker。首先,我启动 aarch64 shell。
docker run -it quay.io/pypa/manylinux2014_aarch64 bash
[root@637db2c1af5e /]# uname -m然后从容器内部,我就像平常一样构建程序。aarch64
git clone https://github.com/gatagat/lap
然后安装一些依赖项。
python3.8 -m pip install numpy cython
然后我就可以造轮子了。
python3.8 setup.py bdist_wheel
然后我有一个“dist”文件夹。
-rw-r--r--。 1 root root 1.7M 8月22日11:59 lap-0.5.dev0-cp38-cp38-linux_aarch64.whl