PySide6とは?ライセンス・商用利用・インストール・使い方まで【2026年最新】
PySide6は、PythonでデスクトップGUIアプリを作るためのQt公式バインディングです。Windows・Mac・Linuxで同じコードが動き、豊富なウィジェットとシグナル/スロットの仕組みを使えます。検索では「商用利用できるのか」「PyQt6と何が違うのか」「インストール方法」がよく調べられます。この記事では、PySide6のライセンスと商用利用の条件を中心に、2026年6月時点の最新バージョン情報、インストール、基本的な使い方、他ライブラリとの比較までを整理します。
まとめ:LGPLで動的リンクすれば商用クローズドでも使える
結論から言うと、PySide6はLGPLで提供されているため、動的リンクで使えば自社コードを非公開のまま商用のクローズドソースアプリに組み込めます。これがGPLしか持たないPyQt6との最大の違いで、商用案件でPySide6が選ばれる理由です。最新版は6.11.1(2026年5月)で、Python 3.10以上が必要になりました。GUI開発自体はpip install PySide6ですぐ始められ、pyside6-designer(Qt Designer)を使えば画面をドラッグ&ドロップで設計できます。ライセンス条件は更新されることがあるため、商用配布の前に必ず公式のライセンス情報を確認してください。以降で、ライセンス・インストール・使い方・比較を順に見ていきます。
PySide6とは何か|Qt for Pythonの特徴
PySide6は、C++製のGUIフレームワークQtをPythonから扱えるようにした「Qt for Python」の正式名称です。Qtの広範なウィジェット群やレイアウト、シグナル/スロットによるイベント処理をPythonの書き方で利用でき、同一コードがWindows・Mac・Linuxで動作します。Qt社(The Qt Company)自身が開発・保守している公式バインディングである点が、信頼性とサポートの面で大きな特徴です。
PySide6でできること
ボタンや入力欄、表(テーブル)、グラフ表示といった一般的なGUI部品をそろえており、業務用のデスクトップツールから本格的なアプリケーションまで作れます。表形式データの可視化を深掘りするなら、Qtベースの描画ライブラリであるPyQtGraphの特徴もあわせて検討できます。標準ウィジェットだけでなく、Qt Designerによる画面設計やスタイル指定にも対応します。
最新バージョンと対応Python
2026年6月時点の最新版はPySide6 6.11.1(2026年5月13日リリース)です。必要なPythonは3.10以上で、対応範囲は3.10から3.14まで(3.15未満)です。以前は3.9でも動きましたが、最小要件が3.10へ引き上げられたため、古い環境では先にPythonを更新してください。なお名前の似たPySide2はQt5系のバインディングで、PySide6はQt6系に対応します。新規開発ならPySide6を選ぶのが基本です。
PySide6のライセンスと商用利用
PySide6でもっとも質問が多いのがライセンスです。ここを正しく理解すれば、商用アプリにも安心して使えます。
ライセンス構成(LGPL/GPL/商用のマルチライセンス)
PySide6はオープンソースライセンス(LGPLv3、またはGPLv2、またはGPLv3)と、有償の商用Qtライセンスから選べるマルチライセンス構成です。PyPIで配布されるパッケージのライセンス表記は「LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only」で、無償のまま商用にも利用できます。ただし一部のモジュールはGPLまたは商用のみでLGPL対象外のため、使うモジュール単位でライセンスを確認するのが安全です。
商用でクローズドソースにする条件(LGPL遵守のポイント)
「LGPLだから商用に使えない」というのは誤解です。LGPLv3では、PySide6を動的リンクで使う限り、自社のアプリケーションコードは非公開(プロプライエタリ)のまま配布できます。鍵になるのは次の遵守事項です。動的リンクにすること、QtおよびPySide6のライブラリ部分のソース入手手段をユーザに提供すること、ユーザがライブラリを差し替えて再リンクできる状態を保つこと(組込機器で差し替えを封じる、いわゆるtivoizationは不可)、そしてLGPLライブラリを使っている旨とライセンス全文をユーザに示すことです。逆に静的リンクをすると、アプリ全体がLGPLの対象になり得るため、商用クローズドでは動的リンクを徹底してください。
商用Qtライセンスが必要になるケース
無償のLGPLで足りないのは、LGPLの配布条件を満たせない場合です。具体的には、静的リンクしたい、ライブラリの差し替えを許可できない閉じた組込デバイスに載せる、配布規約がLGPLと衝突するストアで配る、GPLのみのモジュールをソース非公開で使う、または公式のテクニカルサポートが欲しい、といったケースです。これらに当てはまるなら、Qt社の商用ライセンスを検討します。自社の配布形態がどれに当たるかを最初に確認しておくと、後戻りを避けられます。なお商用ライセンスを契約する場合は、無償のCommunity版(pip install PySide6)ではなく、Qt Account経由で配布物を取得するのが公式の案内です。
PySide6のインストール
PySide6はPyPIで配布されており、pipで導入します。依存関係を分けるため、仮想環境(venvなど)を作って有効化してから入れるのがおすすめです。
python -m venv venv
pip install PySide6
python -c "import PySide6; print(PySide6.__version__)"
pip install PySide6はコアのPySide6-Essentialsと追加モジュールのPySide6-Addonsをまとめたエイリアスで、これ一つで主要機能がそろいます。前述のとおりPython 3.10以上が必要です。インストールすると、画面設計用のpyside6-designerと、Qt Designerで作った.uiファイルをPythonコードへ変換するpyside6-uicも一緒に使えるようになります。
PySide6の使い方|最初のGUIアプリ
基本は、QApplicationを作り、ウィンドウやウィジェットを表示してイベントループを回す流れです。まずはラベルを表示するだけの最小コードを示します。
from PySide6.QtWidgets import QApplication, QLabel
import sys
app = QApplication(sys.argv)
label = QLabel("Hello PySide6")
label.setWindowTitle("Sample")
label.show()
sys.exit(app.exec())
ユーザー操作への反応は、シグナルとスロットで書きます。ボタンのクリックという「シグナル」に、処理関数という「スロット」をconnect()でつなぐだけです。次はボタンを押すとラベルの文字が変わる例です。
from PySide6.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout
import sys
app = QApplication(sys.argv)
window = QWidget()
layout = QVBoxLayout(window)
label = QLabel("初期テキスト")
button = QPushButton("クリック")
layout.addWidget(label)
layout.addWidget(button)
button.clicked.connect(lambda: label.setText("クリックされました"))
window.show()
sys.exit(app.exec())
レイアウトはQVBoxLayout(縦並び)やQHBoxLayout(横並び)、QGridLayout(格子)を使うと、座標を手で指定せずにウィジェットを自動配置できます。大量データの表示は、簡易なQTableWidgetより、モデル/ビュー方式のQTableViewのほうが大規模データで有利です。
Qt DesignerとPySide6の連携
画面の作り込みは、コードだけでなくQt Designerで視覚的に行えます。pyside6-designerを起動し、ウィジェットをドラッグ&ドロップで配置して.uiファイル(XML形式)として保存します。これをアプリに取り込む方法は二つあります。実行時にQUiLoaderで.uiを直接読み込む方法と、pyside6-uicで.uiをPythonコードに変換して取り込む方法です。後者はUIとロジックを分離でき、補完も効くため実務では扱いやすい構成です。デザインとコードを分ければ、画面の調整を繰り返しても本体ロジックに影響しにくくなります。
PySide6とPyQt6・Tkinter・wxPythonの比較
PythonのGUIライブラリは複数あり、ライセンスと用途で選び分けます。代表的な4つを整理します。
| ライブラリ | ライセンス | 特徴 | 向く用途 |
|---|---|---|---|
| PySide6 | LGPL/GPL/商用 | Qt公式・高機能 | 商用含む本格GUI |
| PyQt6 | GPL/商用 | QtラップでAPIほぼ同一 | GPLでよい/商用購入前提 |
| Tkinter | 標準同梱 | 軽量・導入不要 | 小規模ツール・学習 |
| wxPython | wxWindows系(寛容) | ネイティブ外観 | OS標準の見た目重視 |
PyQt6はPySide6と同じQt6をラップしており、APIはほぼ同一です。違いはライセンス(PyQt6はGPLか商用でLGPLがない)と、列挙体を完全修飾名で書く点、シグナルがpyqtSignal/pyqtSlotである点などです。商用でソースを公開したくないならPySide6が無償で使えて有利、GPLで問題ない、あるいはRiverbankの商用ライセンスを買う前提ならPyQt6でも構いません。学習や小さなツールならPython標準のTkinterで十分ですし、OSネイティブの見た目を重視するならwxPythonが選択肢になります。Web技術でデスクトップアプリを作る選択肢を知りたい場合はElectronの入門解説も比較対象になります。
よくある質問
PySide6は商用利用できますか?
できます。PySide6はLGPLで提供されており、動的リンクで使えば自社コードを非公開のまま商用のクローズドソースアプリに組み込めます。条件として、QtとPySide6のライブラリ部分のソース入手手段の提供や、ユーザがライブラリを差し替えられる状態の維持などが必要です。静的リンクや閉じた組込機器など要件を満たせない場合は、Qtの商用ライセンスを検討します。
PySide6とPyQt6の違いは何ですか?
どちらも同じQt6をPythonから使うためのバインディングで、APIはほぼ同一です。最大の違いはライセンスで、PySide6はLGPL/GPL/商用、PyQt6はGPLまたはRiverbankの商用ライセンスです。クローズドソースの商用配布を無償で行いたいならPySide6が有利です。コード上は列挙体の書き方やシグナルの名称(Signal/SlotかpyqtSignal/pyqtSlotか)が異なります。
PySide6のインストール方法は?
仮想環境を作ってからpip install PySide6を実行します。これでコアのEssentialsと追加のAddonsがまとめて入ります。Python 3.10以上が必要なので、古い環境では先にPythonを更新してください。導入後はpython -c "import PySide6; print(PySide6.__version__)"でバージョンを確認できます。
PySide6に必要なPythonのバージョンは?
最新のPySide6 6.11系では、Python 3.10以上(3.15未満)が必要です。対応は3.10・3.11・3.12・3.13・3.14です。以前のバージョンは3.9でも動作していましたが、最小要件が引き上げられているため、最新版を使うなら3.10以降の環境を用意してください。
PySide2とPySide6の違いは?
PySide2はQt5系に対応するバインディングで、PySide6はQt6系に対応します。Qt6では一部のモジュール構成やAPIが変わっているため、両者はそのままでは互換ではありません。これから始めるならQt6世代のPySide6を選ぶのが基本で、Qt5に依存する既存資産がある場合のみPySide2を使います。