树莓派快速进入终端快捷键

树莓派在图形界面中想随时进入终端调试,可以使用快捷键Ctrl+Alt+F1进入终端

如果想进入图形界面的终端,则需要使用快捷键Ctrl+Alt+T

树莓派最小图形系统运行GUI程序出错解决

树莓派最小图形系统(如何搭建最小图形系统见前述文章)在运行pyqt5图形程序时出错,错误提示:

ImportError: libGLESv2.so.2: cannot open shared object file: No such file or directory [919] Failed to execute script 'xxx' due to unhandled exception!

网上几乎没有解决方案,研究了一下,可以用以下方法解决:

sudo apt install libgles2-mesa-dev

密码保护:rpipin

此内容受密码保护。如需查阅,请在下列字段中输入您的密码。

PyCharm中搭建PyQt5开发环境

一、配置PyQt5

1. 安装PyQt5

pip install pyqt5

2. PyQt5 不再提供 QtDesigner 等工具,所以需要再安装 pyqt5-tools工具

pip install pyqt5-tools

3. 打开 Pycharm,依次选择 /File/Settings/Tools/External Tools/ 进入外部工具添加界面

4. 点击绿色加号来创建一个外部工具 QtDesigner,配置如下:

-- 工具名称,用于菜单显示
Name = QtDesigner
-- 工具作用描述
Description = Qt tool for designing and building GUIs with Qt Widgets
-- 可通过浏览模块安装路径下的designer.exe程序
Program = D:\devsoft\Python\Python36\Lib\site-packages\pyqt5-tools\designer.exe
-- 默认为空即可
Arguments =
-- 通过点击右侧 Insert Macro 来选择要插入的宏,$FileDir$ 表示文件当前所在目录
Working directory = $FileDir$
其他配置保持默认即可。

5. 创建一个外部工具 PyUiCompiler,用于将 Qt 的UI界面设计文件 ui文件 转换成 py代码,配置如下:

-- 工具名称,用于菜单显示
Name = PyUiCompiler
-- 工具作用描述
Description = Python User Interface Compiler for Qt
-- 可通过浏览Python安装路径下的python.exe程序
Program = D:\devsoft\Python\Python36\python.exe
-- 调用 PyQt5.uic.pyuic 来执行转换操作
Arguments = -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
-- 通过点击右侧 Insert Macro 来选择要插入的宏,$FileDir$ 表示文件当前所在目录
Working directory = $FileDir$
其他配置保持默认即可。

6. 外部工具使用
选中要进行操作的文件后,依次选择主菜单 /Tools/External Tools/ 下的自定义工具即可。

或者右键依次选择 /External Tools/ 下的自定义工具即可。

编写ui界面方式

1. 通过ui文件实现
首先点击 QtDesigner 外部工具菜单,设计生成 hello.ui 文件,然后点击 PyUiCompiler 通过 hello.ui 文件生成对应的 hello.py 文件。

然后编写测试程序 main.py 来调用 hello.py,从而显示出界面。(main.py)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import hello     # 导入 hello.py 模块
from PyQt5.QtWidgets import QApplication, QMainWindow
if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWindow = QMainWindow()
    ui = hello.Ui_MainWindow()
    ui.setupUi(mainWindow)
    mainWindow.show()
    sys.exit(app.exec_())

或者不通过 PyUiCompiler 工具来生成 hello.ui 文件对应的 hello.py 文件,而是直接在代码中加载 hello.ui 文件。(main2.py)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5 import uic
# 加载 ui 文件
Ui_MainWindow, QtBaseClass = uic.loadUiType('hello.ui')
class MainUi(QMainWindow, Ui_MainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        Ui_MainWindow.__init__(self)
        self.setupUi(self)
if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = MainUi()
    win.show()
    sys.exit(app.exec_())

2. 通过代码直接实现
直接通过代码方式实现ui界面的设计和生成。(main3.py)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = QWidget()
    win.resize(250, 150)
    win.move(300, 300)
    win.setWindowTitle('Hello World')
    win.show()
    sys.exit(app.exec_())

二、添加Pycharm到桌面

找到/usr/share/applications这个目录,其中存放的全部是dash中的启动器,将Pycharm添加其中即可,具体操作步骤为:

命令行操作内容:

cd /usr/share/applications
sudo nano Pycharm.desktop

打开需要编辑的文本内容为:

[Desktop Entry]
Encoding=UTF-8
Name=Pycharm
Comment=Pycharm
Exec=/home/AppImage/pycharm-community-2021.3.1/bin/pycharm.sh
Icon=/home/AppImage/pycharm-community-2021.3.1/bin/pycharm.png
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;
Development;

这样就可以在dash中看到Pycharm的启动器图标了,也可以直接将其添加锁定到launcher

树莓派上实现截屏

在树莓派上截屏的方法很简单。首先在终端中用下面的命令安装名叫“scrot”的截屏工具。

sudo apt-get install scrot

截取全屏幕执行:

sudo scrot

用鼠标选区屏幕区域截取执行:

sudo scrot -s

20秒后截取,参数可以自定义:

sudo scrot -d20

执行下面的指令可以查看更多用法:

sudo scrot -h

判断专注力的程序

今天应儿子要求比赛专注程度,也就是将1-25个数字打乱后分配在5*5的格子里,然后比谁先能按数字顺序数完,失败多次后,我觉得他写的字不容易辨识,随后他提出我写个程序打印出来公平竞赛,写了python程序如下:

import random
x=[]
for i in range(1,26):
    x.append(i)
random.shuffle(x)
for j in range(0,25):
    if j>0 and j%5==0:
        print('\n')
    if x[j]<10:
        print(str(x[j])+'    ',end='')
    else:
        print(str(x[j])+'   ',end='')
运行结果

如果希望打印出来在纸上比试,可以

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import random
if __name__ == '__main__':
    x=[]
    j=0
    for i in range(1,26):
        x.append(i)
    random.shuffle(x)
    t = np.arange(25).reshape(5,5)
    for a in range(0,5):
        for b in range(0,5):
            j=j+1
            t[a,b]=x[j-1]
    df = pd.DataFrame(t)
    fig, ax = plt.subplots(figsize=(5, 5))
    ax.axis('off')
    ax.axis('tight')
    ax.table(cellText=df.values,
#             colLabels=df.columns,
             bbox=[0, 0, 1, 1],
             )
    plt.show()
    如想去掉底部的工具栏并修改标题,代码如下:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import random
if __name__ == '__main__':
    x=[]
    j=0
    for i in range(1,26):
        x.append(i)
    random.shuffle(x)
    t = np.arange(25).reshape(5,5)
    for a in range(0,5):
        for b in range(0,5):
            j=j+1
            t[a,b]=x[j-1]
    df = pd.DataFrame(t)
    plt.rcParams['toolbar'] = 'None'
    fig,ax=plt.subplots(num="注意力测试",
           figsize=(5, 5),
           dpi=100,
           facecolor="white",
           edgecolor='green')
    ax.axis('off')
    ax.table(cellText=df.values,
             bbox=[0, 0, 1, 1],
             )
    plt.show()

某些人对图像边框特别敏感,下面的代码去掉了图像白边:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import random
if __name__ == '__main__':
    x=[]
    j=0
    for i in range(1,26):
        x.append(i)
    random.shuffle(x)
    t = np.arange(25).reshape(5,5)
    for a in range(0,5):
        for b in range(0,5):
            j=j+1
            t[a,b]=x[j-1]
    df = pd.DataFrame(t)
    plt.rcParams['toolbar'] = 'None'
    fig,ax=plt.subplots(num="注意力测试",
           figsize=(5, 5),
           dpi=100,
           facecolor="white",
           edgecolor='black')
    ax.axis('off')
    # 去除图像周围的白边
    plt.subplots_adjust(top=1, bottom=0, left=0, right=1, hspace=0, wspace=0)
    ax.axis('tight')
    ax.table(cellText=df.values,
             bbox=[0, 0, 1, 1],
             )
    plt.show()

树莓派安装docker

安装DOCKER 及 DOCKER-COMPOSE步骤

  1. apt更新:
apt-get update
  1. 安装python和pip(如已安装可省略):
apt-get install -y python python-pip
  1. 安装libffi-dev:
apt-get install libffi-dev
  1. 用pip安装docker 及 docker-compose:
sudo curl -sSL https://get.docker.com | sh
pip install docker
pip install docker-compose

树莓派5安装docker

sudo apt install docker
sudo apt install docker-compose