使用Docker在Raspberry pi中安装Noetic时出现的问题

问题描述 投票:0回答:4

背景:我过去已经能够在我的 Raspberry Pi4 中构建和运行 ROS Kinetic 和 ROS2 eloquent 容器。

我正在尝试构建并运行 ROS noetic。但是我收到错误。 为了证明这一点,我做了最简单的事情

docker pull ros:noetic

那我就做

docker image ls

我可以看到图像就在那里

但是当我这样做时

docker run -it ros:noetic

我明白了

Fatal Python error: pyinit_main: can't initialize time
Python runtime state: core initialized
PermissionError: [Errno 1] Operation not permitted

Current thread 0xb6ff1460 (most recent call first):
<no Python frame>

我想知道发生了什么事以及如何解决这个问题

我的怀疑是,由于 noetic 使用的是 Python 3 而不是 2,所以由于版本原因,有些东西会失败

评论:我知道 ROS Kinetic 使用 python 2,但我假设 ROS2 eloquent 使用 Python 3!现在我发现它也使用python 2!

更多信息:

我已经能够在我的 Ubuntu 桌面计算机上构建并运行 ROS noetic 容器。 所以我认为这是一个树莓派问题。不过似乎可以在 RPi 上原生安装 noetic,所以我想知道是否是 Noetic Docker 镜像的问题...

python python-3.x python-2.7 docker ros
4个回答
7
投票

我遇到了完全相同的问题,并且以下解决方法有效:

docker run --privileged

有关 --privileged switch 的 Docker 文档


3
投票

主机上的下一个命令帮助我:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138
echo "deb http://deb.debian.org/debian buster-backports main" | sudo tee -a /etc/apt/sources.list.d/buster-backports.list
sudo apt update
sudo apt install -t buster-backports libseccomp2 

0
投票

这不是 docker 问题,因为如果您在另一台机器上执行此操作,它就可以工作。这是一个与如何获得时间有关的问题。

也许它可以帮助你:

致命的Python错误:Py_Initialize:无法初始化系统标准流LookupError:未知编码:65001


0
投票

经过一系列谷歌搜索并尝试不同的解决方案后,我在我的 rpi4 上安装了 64 位版本的 ubuntu,之后它运行得非常好。 rpi 安装程序是刷新新操作系统的一种快速且简单的方法: https://www.raspberrypi.com/software/

© www.soinside.com 2019 - 2024. All rights reserved.