如何在嵌入式平台禁用pip构建Python包的Wheel?
解决Buildroot aarch64设备无法安装upolygon的问题
你的核心问题是upolygon未提供aarch64平台的预编译wheel,且目标设备缺少编译器,导致pip构建wheel失败。直接禁用wheel构建无法解决根本问题(源码安装仍需编译C扩展),以下是可行的解决方案:
方法一:通过Buildroot交叉编译集成upolygon(推荐)
这是嵌入式Linux的标准实践,利用Buildroot的交叉编译环境在主机上完成包构建:
- 在Buildroot的
package/目录下新建python-upolygon文件夹,创建两个文件:Config.in:config BR2_PACKAGE_PYTHON_UPOLYGON bool "python-upolygon" help Python package for drawing polygons on images.python-upolygon.mk(替换<版本号>为你需要的upolygon版本):PYTHON_UPOLYGON_VERSION = <版本号> PYTHON_UPOLYGON_SITE = https://pypi.io/packages/source/u/upolygon/ PYTHON_UPOLYGON_SOURCE = upolygon-$(PYTHON_UPOLYGON_VERSION).tar.gz PYTHON_UPOLYGON_SETUP_TYPE = setuptools PYTHON_UPOLYGON_LICENSE = MIT PYTHON_UPOLYGON_LICENSE_FILES = LICENSE $(eval $(python-package))
- 执行
make menuconfig,在Target packages -> Interpreter languages and scripting -> Python下勾选python-upolygon,重新编译Buildroot镜像即可将包集成到设备中。
方法二:主机交叉编译wheel后传到设备安装
若不想修改Buildroot配置,可在主机的交叉编译环境中生成适合aarch64的wheel:
- 进入Buildroot的交叉编译环境,确保已激活对应的Python工具链。
- 执行以下命令构建wheel:
pip wheel upolygon --no-deps -w ./wheelhouse --platform manylinux2014_aarch64 - 将
wheelhouse目录下生成的.whl文件传输到目标设备,执行安装:pip install ./upolygon-<版本号>-manylinux2014_aarch64.whl
关于禁用wheel构建的说明
若强制要求跳过wheel构建直接尝试源码安装(注:此方法需要设备有编译器,对你的场景无效),可使用命令:
pip install upolygon --no-binary :all: --no-build-isolation
内容的提问来源于stack exchange,提问作者Preeti
相关产品推荐
相关产品推荐

