【Mac/Ubuntu】PyQtエラー回避!Rye + PySide6でlabelImgをクリーンに動かす方法

ALL

こんにちは、Tech Samuraiです!
YOLOのカスタム学習を始めようとするとき、誰もが通る道がアノテーションツール「labelImg」のインストールです。しかし、多くのチュートリアルで紹介されているpip install labelimgは、PyQt5というライブラリの依存関係エラーで、すんなり動かないことが多々あります。

私自身、このエラーには何度も悩まされてきました。そこで今回は、この厄介なPyQt`問題を完全に回避し、よりモダンな**`PySide6`**を使って`labelImg`を動かす、クリーンで確実なインストール手順を探検します。

さらに、この環境を**Rye**で管理することで、あなたのPC本体を汚さず、プロジェクトごとに独立したツール環境を構築する方法も併せて紹介します!


目次

  1. 【推奨】Rye + PySide6を使ったインストール手順
  2. 【参考】Ryeを使わない伝統的なインストール手順
  3. まとめ

【推奨】Rye + PySide6を使ったインストール手順

この方法では、labelImg`をPC本体に直接インストールするのではなく、Ryeが管理する専用のプロジェクト環境に導入します。これにより、他のPythonプロジェクトとの依存関係の衝突を100%防ぐことができます。

ステップ1:Ryeプロジェクトのセットアップ

まず、labelImg`のためだけの専用プロジェクトフォルダを作成し、Rye環境を初期化します。

# (すでにあるプロジェクト内で使いたい場合は cd で移動してください)
mkdir labelimg-project
cd labelimg-project
rye init
rye pin 3.12 # 任意のPythonバージョンを指定

ステップ2:OS固有の依存ライブラリのインストール

PySide6`が動作するために、OS側で必要なライブラリをインストールします。

🍎 macOS ユーザー:
Xcode Command Line Toolsが入っていれば、通常は追加の作業は不要です。

🐧 Ubuntu (Linux) ユーザー:
Qt6関連のライブラリをapt`でインストールする必要があります。

sudo apt update
sudo apt install qt6-base-dev qt6-base-dev-tools -y

ステップ3:Python依存ライブラリのインストール

Ryeを使って、`PySide6`と`lxml`をプロジェクトに追加します。

rye add pyside6 lxml
rye sync

ステップ4:labelImg (PySide6ブランチ) のクローン

ここが最重要ポイントです。labelImg`の公式リポジトリから、PyQt`ではなく`PySide6`を使うように修正された、特別なブランチ(pyside6ブランチ)だけをクローンします。

# --branch pyside6 を指定するのが重要!
git clone --depth=1 --branch pyside6 --single-branch https://github.com/tzutalin/labelImg.git

ステップ5:ビルドと実行

クローンしたディレクトリに移動し、labelImg`を起動します。

# クローンしたディレクトリに移動
cd labelImg

# Qtのリソースファイル(.qrc)をPythonファイル(.py)にコンパイル
# ★ make の代わりに rye run を使い、環境内のpyside6-rccを確実に呼び出す
rye run pyside6-rcc -o libs/resources.py resources.qrc

# コンパイルが成功したら、labelImg を起動
rye run python labelImg.py

おめでとうございます!これで、クリーンなRye環境で`labelImg`が起動したはずです。


【参考】Ryeを使わない伝統的なインストール手順

「Ryeは使っていないけど、PySide6版を使いたい」という方向けに、従来のvenv`(仮想環境)とpip`を使った手順も紹介します。

# 1. (Ubuntuのみ) ステップ2のaptインストールを実行
# sudo apt install qt6-base-dev qt6-base-dev-tools -y

# 2. 仮想環境の作成と有効化
python3 -m venv venv
source venv/bin/activate

# 3. 依存ライブラリのインストール
pip install pyside6 lxml

# 4. PySide6ブランチのクローン
git clone --depth=1 --branch pyside6 --single-branch https://github.com/tzutalin/labelImg.git

# 5. ビルドと実行
cd labelImg
pyside6-rcc -o libs/resources.py resources.qrc
python labelImg.py

まとめ

labelImg`のインストールでPyQt`関連のエラーに遭遇したときは、慌てる必要はありません。公式が用意してくれている`pyside6`ブランチを利用することで、この問題をスマートに回避できます。

さらに、Ryeを使ってプロジェクトごとに専用の環境を構築することで、PC本体のPython環境を汚さずに、必要なツールを安全に管理することができます。ぜひ、このクリーンなアノテーション環境を手に入れて、あなたのYOLOプロジェクトを加速させてください!

コメント

タイトルとURLをコピーしました