由于在自己的电脑中安装Pyqt5不成功,原因是与其他环境中的qt版本不兼容…因此,了解到了docker,这里记录一下在docker中安装pyqt5过程。
1. 安装Docker并从官方仓库拉取Ubuntu 20.04的镜像
docker pull ubuntu:20.04
2. 运行容器
docker run -it --name ubuntu ubuntu:20.04 /bin/bash
这里–name [ubuntu] 名字自取
3. 更换apt源
sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
sed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
apt clean
apt-get update -y
4. 在容器内安装X11
apt-get update
apt-get install -y xorg
5. 将容器打包为镜像
docker commit -m "ubuntu with x11(xorg)" -a zobot 680862fa0d6b ubuntu_x11:1.0
6. 启动容器并将X11服务器的地址映射到DISPLAY变量上
参考:Ubuntu20.04+Docker+ROS Noetic+LOAM环境配置
sudo docker run -it -v /home/zobot/docker/pyqt5:/data --device=/dev/dri --group-add video --volume=/tmp/.X11-unix:/tmp/.X11-unix --env="DISPLAY=$DISPLAY" --env="QT_X11_NO_MITSHM=1" --name=pyqt5 ubuntu_x11:1.0 /bin/bash
7. 安装pyqt5
参考:Ubuntu Linux安装PyQt5并配置Qt Designer
apt-get install -y python3-pyqt5
8. 安装图形界面Qt Designer
apt-get install qttools5-dev-tools
apt-get install qttools5-dev
9. 测试
python3 在Python shell中输入以下内容:
import sys
from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication(sys.argv)
label = QLabel('Hello World!')
label.show()
sys.exit(app.exec_())
10. 重新进入容器
# 法1 启动容器并进入(用于已退出容器)
sudo docker start -ia [container_id]
# 法2 进入已启动的容器 (用于容器已启动)
sudo docker exec -it [container_id] /bin/bash
11. 保存为镜像备份
sudo docker commit -m "ubuntu with pyqt5" -a zobot 676c01b647aa ubuntu_pyqt5:1.0