本文将介绍在香橙派(Orange Pi)开发板上进行软件配置和环境搭建的详细步骤,以便运行Python应用程序。这涵盖了以下主要内容:
获取所需软件:提供了香橙派操作系统和balenaEtcher工具的下载链接,以确保正确的操作系统安装。
TF卡清空与分区重建:在Windows操作系统下,通过命令行工具(Command Prompt)清空和可选择性地分区与格式化TF卡的详细步骤,使其适用于不同需求,如重新烧录镜像或定制存储设备。
常用磁盘管理与修复方法:介绍了使用Diskpart和chkdsk工具来管理磁盘分区、格式化和修复文件系统的常见操作,以保持磁盘的健康状态。
Python环境配置:包括在香橙派上安装Python 3.8、更新pip、更换pip源以及安装常用的Python库,以准备开发环境。
香橙派
balenaEtcher
本部分将介绍如何在 Windows 操作系统下,使用命令行工具(Command Prompt)通过插入 TF 卡并执行一系列命令来清空其内容,并可选择性地进行分区和格式化,以使其像普通存储设备一样工作。这个过程非常有用,无论是为了重新烧录镜像还是为了定制存储设备。
首先,确保将 TF 卡插入到读卡器中,然后将读卡器连接到计算机上。TF 卡是一种常见的存储介质,通常用于嵌入式设备、相机、智能手机等。
打开 Windows 命令行工具,你可以在开始菜单中搜索 “cmd” 或按下 Windows + R 键,然后输入 “cmd” 并按 Enter 打开。命令行工具是一个强大的工具,用于执行各种系统级任务。
在命令行中输入以下命令,以进入 diskpart 工具:
diskpart.exe
Diskpart 是一个 Windows 命令行实用程序,可用于管理磁盘分区、格式化等磁盘操作。
在 diskpart 中,使用以下命令列出计算机上的所有磁盘驱动器及其编号:
list disk
每个磁盘驱动器都会有一个唯一的编号,通常以数字表示。在这一步,你需要找到与 TF 卡相关的磁盘驱动器编号(通常是可识别出其容量大小的那一个)。
使用以下命令选择 TF 卡所在的磁盘驱动器(将 x1
替换为 TF 卡所在驱动器的编号):
select disk x1
选中了 TF 卡驱动器后,使用以下命令来擦除任何现有文件系统,以彻底清空 TF 卡内容:
clean
此时,TF 卡已经彻底清空,可以重新烧录镜像或进行分区和格式化,具体取决于你的需求。
如果你希望将 TF 卡分区并格式化,使其像普通存储设备一样工作,可以按照以下顺序输入命令:
create partition primary
select partition 1
format quick
这将创建一个主分区并快速格式化它,使 TF 卡准备好存储数据。
以上就是在 Windows 操作系统下使用命令行工具清空 TF 卡并进行分区和格式化的步骤。这个过程在嵌入式系统开发、数据备份和存储设备维护中非常常见。
注意: 在执行任何磁盘操作之前,请务必小心谨慎,确保你选择了正确的磁盘驱动器,以免意外删除重要数据。根据你的需求,你可以选择仅清空 TF 卡或同时创建分区和格式化 TF 卡。
上述步骤操作后,你应该可能可以正常访问TF卡了,但是你可能还是无法正常烧录系统
PhysicalDrive2: Checksum does not match for range[0,72351743]: "13908ca859e2ff5c" != "240694foa08e4cb8"
步骤 1. 同时按住「Windows+R」进入 Diskpart 程序
diskpart.exe
步骤 2. 输入下方指令:
list volume
select volume X ("X" 为 RAW 磁盘区代号)
format fs=ntfs quick
exit
你也可以
format fs=fat32 quick
(“x” 为 RAW 磁盘区代号)
convert x: /fs:ntfs
同时按下“Win+R”键,打开运行窗口。然后,在其中输入
chkdsk H:/F
H是指TF卡在本机中的盘符、F是修复参数,并按下“Enter”键确认,等待修复即可。
当使用 Diskpart
进行磁盘管理时,可以执行各种操作以管理计算机上的磁盘和分区。以下是一些详细的示例和说明:
列出磁盘和分区信息:
列出所有磁盘信息:
list disk
列出所有分区和卷信息:
list volume
选择磁盘或分区:
选择磁盘(假设磁盘编号为 N):
select disk N
选择分区(假设分区编号为 N):
select volume N
清除磁盘或分区:
清除磁盘上的所有分区和卷,擦除数据:
clean
清除特定分区或卷上的数据:
clean all
创建分区:
创建主分区:
create partition primary
创建逻辑分区:
create partition logical
格式化分区:
快速格式化分区:
format quick
完全格式化分区:
format fs=ntfs # 或者其他文件系统类型
扩展分区:
扩展一个已存在的分区以利用未分配的空间:
extend
设备签名:
设置磁盘的设备签名,以便更容易区分不同磁盘:
uniqueid disk ID=NewID
离线和在线磁盘:
将磁盘设置为离线状态:
offline disk
将磁盘设置为在线状态:
online disk
查看磁盘和分区属性:
查看分区或卷的属性:
attributes volume
脚本操作:
创建一个包含 Diskpart
命令的文本文件,例如 commands.txt
,然后执行脚本:
Diskpart /s commands.txt
这些示例演示了如何使用 Diskpart
进行磁盘管理操作。请谨慎操作,确保你了解每个命令的影响,特别是在删除或格式化分区时。磁盘操作可能会导致数据丢失,因此在进行任何重要操作之前,请备份重要数据。
chkdsk(磁盘检查)是Windows操作系统中的一个命令行工具,用于检查和修复硬盘驱动器上的文件系统错误和硬盘问题。以下是一些常用的chkdsk方法介绍:
运行基本的chkdsk:
chkdsk [驱动器名称]:
这将启动chkdsk来扫描指定驱动器上的文件系统,并报告任何发现的错误。通常,你需要以管理员权限运行此命令。
修复文件系统错误:
chkdsk [驱动器名称]: /f
使用/f
参数运行chkdsk可以修复检测到的文件系统错误。它会在扫描过程中尝试修复发现的问题。
扫描并修复坏扇区:
chkdsk [驱动器名称]: /r
添加/r
参数会扫描并尝试修复任何硬盘上的坏扇区。这个过程可能需要一些时间,特别是对于大容量硬盘。
强制卸载驱动器:
chkdsk [驱动器名称]: /x
使用/x
参数可以强制卸载指定驱动器,然后运行chkdsk。这通常用于系统驱动器,需要重新启动计算机以完成扫描和修复过程。
显示扫描进度:
chkdsk [驱动器名称]: /i
添加/i
参数可以显示chkdsk的扫描进度。这对于了解扫描的进展情况很有帮助。
将扫描结果保存到文件:
chkdsk [驱动器名称] > 文件路径.txt
你可以将chkdsk的结果保存到一个文本文件中,以便稍后查看扫描报告。
检查系统驱动器:
chkdsk C: /f /r
如果你要检查系统驱动器(通常是C:驱动器),可以使用/f
和/r
参数一起运行chkdsk来修复文件系统错误和坏扇区。
请注意,运行chkdsk可能需要一些时间,特别是在大容量硬盘上或者在修复大量错误时。确保在运行chkdsk之前备份重要数据,以防意外数据丢失。同时,建议在执行磁盘维护操作之前关闭所有正在运行的应用程序。
本次环境配置使用的香橙派系统为
Orangepi3-lts_3.0.8_ubuntu_jammy_desktop_xfce_linux5.16.17.7z
香橙派提供的ubantu系统常常分为两个版本desktop_xfce版本是带桌面版本,带桌面版本可以关闭桌面,得到和server版本大致相同的Linux命令行服务器版本
sudo orangepi-config
这是一组关于在Linux系统上安装Python 3.8以及更改pip源的步骤。以下是每个步骤的解释:
1) 安装编译 Python 需要的依赖包
首先,您需要更新系统软件包列表,并安装编译Python所需的依赖包。这些包包括构建工具和Python的各种库,用于支持Python的不同功能和模块。
sudo apt-get update
sudo apt install -y build-essential zlib1g-dev \
libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev \
libreadline-dev libffi-dev curl libbz2-dev
以上是文档中的配置方法,我在配置Torch库时出现了
ModuleNotFoundError: No module named '_lzma'
我们需要在sudo apt-get update
后先安装lzma依赖再编译python
apt-get install liblzma-dev -y
# centos系统执行
yum install xz-devel -y
yum install python-backports-lzma -y
# ubuntu系统执行
apt-get install liblzma-dev -y
2) 下载最新版本的Python 3.8源码并解压
使用wget下载Python 3.8的源代码压缩文件,并使用tar命令解压缩它。
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar xvf Python-3.8.0.tgz
3) 运行配置命令
进入解压后的Python源代码目录并运行configure命令,以准备编译Python。–enable-optimizations标志用于启用编译时的优化。
cd Python-3.8.0
./configure --enable-optimizations
4) 编译安装Python 3.8
使用make命令编译Python。这可能需要一段时间,大约半个小时左右,具体时间取决于您的系统性能。
make -j4 # 使用-j标志以并行编译,数字4表示同时使用4个CPU核心
sudo make altinstall # 使用altinstall以防止覆盖系统默认的Python版本
5) 检查Python版本
安装完成后,您可以使用以下命令来验证Python版本:
python3.8 --version
6) 更新pip
使用新安装的Python 3.8的pip来更新pip本身:
/usr/local/bin/python3.8 -m pip install --upgrade pip
7) 更换pip源的方法
在中国大陆等地区,访问Python官方源可能会较慢,因此更换pip源以提高下载速度是一个好主意。
永久更换pip源的方法:
a. 创建~/.pip目录并在其中创建pip.conf配置文件,并将源设置为清华源。
mkdir -p ~/.pip
cat <<EOF > ~/.pip/pip.conf
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
EOF
b. 现在,使用pip3安装Python库时,将从清华源下载,速度会更快。
临时更换pip源的方法:
如果您只想为特定包更改pip源,可以使用以下命令,将
替换为您要安装的包名。
pip3 install <packagename> -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
这将在临时情况下使用清华源来安装特定包。
打包方式基于
半自动化使用.bat手动打包迁移python项目
这里我们同样通过创建虚拟环境实现一个干净的新环境进行测试
python3.8 -m venv venv
source venv/bin/activate
python3.8 -m pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade pip setuptools
pip install -i https://mirrors.aliyun.com/pypi/simple/ scipy==1.7.1
pip install -i https://mirrors.aliyun.com/pypi/simple/ numpy==1.24.4
pip install -i https://mirrors.aliyun.com/pypi/simple/ matplotlib==3.4.3
pip install -i https://mirrors.aliyun.com/pypi/simple/ tqdm==4.62.2
pip install -i https://mirrors.aliyun.com/pypi/simple/ Pillow==10.0.2
pip install -i https://mirrors.aliyun.com/pypi/simple/ h5py==3.9.0
pip install -i https://mirrors.aliyun.com/pypi/simple/ gradio
pip install -i https://mirrors.aliyun.com/pypi/simple/ opencv-python==4.5.3.56
pip install -i https://mirrors.aliyun.com/pypi/simple/ scikit-learn
pip install torch==2.1.0 torchvision==0.16.0 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
香橙派里存在可下载的torch1.7.1,但是我没找到适配的torch1.7.1+cu110
同时也下载不到torchvision0.8.2+cu110和 torchaudio0.7.2
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
我尝试提升torch版本为torch==1.9.0,然后逐个适配torchvision和torchaudio此时版本匹配,但是运行是提示:
pip install torch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
Illegal instruction
原因: CPU 架构不匹配:程序被编译为针对一个不匹配的 CPU 架构而运行。
编译器问题:程序被使用了不兼容的编译器编译,或编译器安装有问题。 使用了不支持的指令:程序正在尝试执行一条不支持的 CPU 指令。
解决办法: 检查 CPU 架构:在运行程序之前,可以通过执行uname -a命令来查看 CPU 架构信息。如果程序是针对一个不兼容的 CPU
架构而编译的,应该使用与该架构兼容的目标平台重新编译程序。
这是常规官方解释,但我不懂CPU 架构版本匹配规则,即使使用:
uname -a
我也大概率无法解决问题
所以此时我让pip更新torch,它自动找到了适配版本
python3.8 -m pip install --upgrade torch
最终torch版本如下
pip install torch==2.1.0 torchvision==0.16.0 torchaudio==0.9.0
安装 face_recognition 前首先需要安装下 dlib 这个库,由于 dlib 这个库在开发板上编译安装比较慢,我们使用在 gitee 上编译好的 dlib whl 文件,下载后直接安装就可以了。dlib whl 文件下载地址如下所示:
python_whl
你可以直接clone到桌面
git clone --depth=1 https://gitee.com/leeboby/python_whl
在 python_whl 文件夹中可以看到有多个版本的 dlib 安装包,dlib 不同版本
对应的 Linux 系统如下所示:
Ubuntu18.04 dlib-19.24.0-cp36-cp36m-linux_aarch64.whl
Ubuntu20.04 dlib-19.24.0-cp38-cp38-linux_aarch64.whl
Ubuntu22.04 dlib-19.24.0-cp310-cp310-linux_aarch64.whl
Debian10 dlib-19.24.0-cp37-cp37m-linux_aarch64.whl
Debian11 dlib-19.24.0-cp39-cp39-linux_aarch64.whl
我们使用
pip install dlib-19.24.0-cp38-cp38-linux_aarch64.whl
理论上你可以选择在
dlib官网源
直接下载得到例如dlib-19.19.0.tar.gz或其他版本的dlib然后
pip install dlib-19.19.0.tar.gz
你也可以
pip download dlib==19.19.0
pip install dlib-19.19.0.tar.gz
更新
python3.8 -m pip install --upgrade dlib
即可安装成功,但是板子性能不足,确实需要编译很久,建议使用方法一
该方法基于
全面横扫:dlib Python API在Linux和Windows的配置方案
GUI.py可替换为任何你需要编译运行的.py文件
python3.8 GUI.py
你可以将完整文件传到Windows,然后这样打包你的代码
半自动化使用.bat手动打包迁移python项目
以上环境配置是我回忆的过程,若出现报红,请安装提示中的版本,过段时间我会格式化再配置一次。
当你无法解决问题时,
我建议优先使用最简单pip install
自动匹配版本,
其次使用
python3.8 -m pip install --upgrade
来更新包到最新版,
最后使用pip安装可安装到的最旧的版本,配合pip uninstall
和python3.8 -m pip install --upgrade
自动匹配版本逐个版本进行升级进行尝试
sudo apt-get update
sudo apt-get install liblzma-dev -y
sudo apt install -y build-essential zlib1g-dev \
libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev \
libreadline-dev libffi-dev curl libbz2-dev
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar xvf Python-3.8.0.tgz
cd Python-3.8.0
./configure --enable-optimizations
make -j4 # 使用-j标志以并行编译,数字4表示同时使用4个CPU核心
sudo make altinstall # 使用altinstall以防止覆盖系统默认的Python版本
python3.8 --version
/usr/local/bin/python3.8 -m pip install --upgrade pip
mkdir -p ~/.pip
cat <<EOF > ~/.pip/pip.conf
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
EOF
python3.8 -m venv venv
source venv/bin/activate
python3.8 -m pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade pip setuptools
pip install -i https://mirrors.aliyun.com/pypi/simple/ scipy==1.7.1
pip install -i https://mirrors.aliyun.com/pypi/simple/ numpy==1.24.4
pip install -i https://mirrors.aliyun.com/pypi/simple/ matplotlib==3.4.3
pip install -i https://mirrors.aliyun.com/pypi/simple/ tqdm==4.62.2
pip install -i https://mirrors.aliyun.com/pypi/simple/ Pillow==10.0.2
pip install -i https://mirrors.aliyun.com/pypi/simple/ h5py==3.9.0
pip install -i https://mirrors.aliyun.com/pypi/simple/ gradio
pip install -i https://mirrors.aliyun.com/pypi/simple/ opencv-python==4.5.3.56
pip install -i https://mirrors.aliyun.com/pypi/simple/ scikit-learn
pip install -i https://mirrors.aliyun.com/pypi/simple/ imutils
pip install torch==2.1.0 torchvision==0.16.0 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
git clone --depth=1 https://gitee.com/leeboby/python_whl
pip install python_whl/dlib-19.24.0-cp38-cp38-linux_aarch64.whl
python3.8 GUI.py
在香橙派上进行软件配置和环境搭建是为了使其能够运行Python应用程序。首先,我们介绍了下载相关软件的连接,包括操作系统和烧录工具。然后,我们详细说明了清空和分区重建TF卡的步骤,以便为开发板创建一个干净的存储设备。
此外,我们还提供了磁盘管理和修复文件系统问题的常用方法,使用了Diskpart和chkdsk工具。最后,我们介绍了Python环境配置的步骤,包括安装Python 3.8、更新pip、更换pip源以及安装各种Python库,以便在香橙派上运行Python应用程序。这些步骤将帮助用户准备好一个功能强大的开发环境,以便进行软件开发和项目实施。