前段时间,在wsl
中安装配置了yolov8
的环境,在训练模型时,需要用到标注软件,这次参考了官网的快速入门指南和GhatGPT,安装X-AnyLabeling
软件,记录下安装过程与错误处理。
官网的快速入门指南地址:
修改虚拟环境目录
这次我将之前yolov8-study
文件夹下的虚拟环境删掉重建了,准备在用户目录下建立一个venv
文件夹,用来存放多个虚拟环境,目前两个,一个是yolov8
的训练推理的环境,另一个是X-AnyLabeling
用到的虚拟环境。另外在用户目录下新建tools
文件夹,用来存放X-AnyLabeling
。
安装X-AnyLabeling
创建tools
和venv
文件夹便于管理
bash
mkdir -p ~/tools
进入tools
文件夹后,从github
拉取代码
bash
cd ~/tools
git clone https://github.com/CVHub520/X-AnyLabeling.git
在venv
文件夹中,创建X-AnyLabeling
的虚拟环境,并激活该环境
bash
cd ~/venv
python3 -m venv venv-x-any-labeling-3-12-3
source ~/venv/venv-x-any-labeling-3-12-3/bin/activate
安装ONNX Runtime
,根据CUDA
的版本来
bash
cd ~/tools/X-AnyLabeling/
pip install onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/
根据这里的CUDA
版本来选择安装命令,官网的提示:
根据电脑的系统,gpu等需要,选择requirements
进行安装依赖:
bash
cd ~/tools/X-AnyLabeling/
pip install -r requirements-gpu.txt
执行命令,生成资源:
bash
pyrcc5 -o anylabeling/resources/resources.py anylabeling/resources/resources.qrc
根据官网提示设置环境变量(我每次进入~/tools/X-AnyLabeling
执行命令,不需要这一步也可以):
bash
export PYTHONPATH=~/tools/X-AnyLabeling
报错处理
启动X-AnyLabeling
:
bash
cd ~/tools/X-AnyLabeling/
python anylabeling/app.py
我这时有报错:
kotlin
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
这时候Qt在Linux(WSL)中运行GUI应用时常见问题之一,依赖项不完整或者环境缺失,使用以下命令:
先退出当前的虚拟环境:
bash
deactivate
一次性装齐依赖:
bash
sudo apt update
sudo apt install -y \
libx11-xcb1 libxcb1 libxcb-util1 libxrender1 libxkbcommon-x11-0 \
libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 \
libxcb-render-util0 libxcb-shape0 libxcb-shm0 libxcb-sync1 \
libxcb-xfixes0 libxcb-xinerama0 libxcb-xkb1 \
libxkbcommon-x11-dev
安装结束后,确认GUI是否支持:
bash
echo $DISPLAY
如果输出是 :0 或 :0.0,说明 GUI 支持开启了。
重新激活虚拟环境,以及启动X-AnyLabeling
:
bash
source ~/venv/venv-x-any-labeling-3-12-3/bin/activate
cd ~/tools/X-AnyLabeling/
python anylabeling/app.py
此时软件正常启动,但是报了一个警告:
bash
QStandardPaths: wrong permissions on runtime directory /run/user/1000/, 0755 instead of 0700
这是Qt(PyQt5)对 XDG_RUNTIME_DIR 的权限检查,不影响运行,修改/run/user/1000/
的权限来修复此警告:
bash
sudo chmod 700 /run/user/1000
再次执行启动命令,发现软件正常启动了,也没有警告输出。
软件成功打开后,工具栏Language
选项下,中文那一栏乱码,这是由于WSL环境下缺少中文字体,退出软件,执行命令,安装字体:
bash
sudo apt install fonts-noto-cjk
安装好后,再次启动软件,成功启动,且没有了乱码问题。