微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为 Raspberry Pi 构建 Python IoTEdge 模块

如何解决为 Raspberry Pi 构建 Python IoTEdge 模块

我正在尝试为 RaspBerry Pi 4 构建 Python IoTEdge 模块(使用 Docker 构建映像)。

我将 IoTEdge 解决方案的目标架构设置为 arm32v7

我认为我的 requirements.txt 没有任何问题,仅供参考:

requirements.txt

azure-iot-device~=2.0.0
opencv-python
numpy
requests

Dockerfile

FROM arm32v7/python:3.7-slim-buster

workdir /app

copY requirements.txt ./
RUN pip install -r requirements.txt

copY . .

CMD [ "python3","-u","./main.py" ]

我运行以下命令:

docker build  --rm -f "path/to/Dockerfile" -t dockerTag "path/to/module/project"

但是,我收到以下错误

Step 4/7 : RUN pip install -r requirements.txt
 ---> Running in 515aac4bdc38
standard_init_linux.go:219: exec user process caused: exec format error

我阅读了 here 以构建到 ARM,我必须使用 docker buildx 代替。我用 buildx 创建了一个 --platform linux/arm32 容器。我改用这个容器,然后运行:

docker buildx build --platform linux/arm32 --rm -f "path/to/Dockerfile" -t dockerTag "path/to/module/project"

但是,现在我明白了:

 => ERROR [4/7] RUN pip install -r requirements.txt                                                                                                                        2.2s
------                                                                                                                                                                          
 > [4/5] RUN pip install -r requirements.txt:
#8 0.727 standard_init_linux.go:219: exec user process caused: exec format error
------
Dockerfile.arm32v7:22
--------------------
  20 |     #     libcurl4-openssl-dev
  21 |     
  22 | >>> RUN pip install -r requirements.txt
  23 |     
  24 |     copY . .
--------------------
error: Failed to solve: rpc error: code = UnkNown desc = executor Failed running [/bin/sh -c pip install -r requirements.txt]: exit code: 1

我的开发机器:

  • 芯片:英特尔 i7 4510u
  • 操作系统:manjaro KDE

我还尝试直接在 RaspBerry Pi 4 本身上构建它,但很遗憾,它给了我同样的错误。 我不知所措。有什么建议吗?

解决方法

奇怪的是,当我在 Windows 机器上而不是使用 Manjaro Linux 时,它成功构建。我还是想知道为什么...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。