【Python】WebスキルでGUIアプリを開発できるpywebview

【Python】WebスキルでGUIアプリを開発できるpywebview プログラミング

「PythonアプリをWebのスキルで開発したい」
「PythonでGUIアプリを開発したい」
「PythonアプリでスマホアプリのWebviewみたいなことをできないか?」

このような場合には、pywebviewがオススメです。
この記事では、pywebviewについて解説しています。

本記事の内容

  • pywebviewとは?
  • pywebviewのシステム要件
  • pywebviewのインストール
  • pywebviewの動作確認

それでは、上記に沿って解説していきます。

pywebviewとは?

pywebviewは、PythonでWebviewを実現するためのライブラリです。
pywebviewを使えば、PythonアプリのGUIをWebのスキルで開発できます。

追記 2022年2月28日
pywebviewを用いて、表形式でデータを表示するGUIアプリを開発しました。

Webのスキルとは、具体的には以下。

  • JavaScript
  • HTML
  • CSS

Webviewは、スマホアプリではよく見かけます。
ネイティブアプリから、Webページにアクセスする場合には多用されます。

でも、Webviewはトラブルを引き起こす元でもあります。
特にiOSアプリではセキュリティ絡みでトラブルが多い印象です。

そんなWebviewですが、便利だからこそ利用されています。
その恩恵をPythonでも享受することが可能です。

そして、その際にpywebviewが欠かせません。

以上、pywebviewについての説明でした。
次は、pywebviewのシステム要件を確認します。

pywebviewのシステム要件

現時点(2022年2月)でのpywebviewの最新バージョンは、3.5となります。
この最新バージョンは、2021年8月2日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

サポート対象となるPythonのバージョンは、以下となっています。

  • Python 3.4
  • Python 3.5
  • Python 3.6
  • Python 3.7
  • Python 3.8
  • Python 3.9

これは、次のPython公式開発サイクルとはかなりかけ離れています。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月

一般的には、Python 3.7以降に対応していればOKというのが現状です。
その意味では、pywebviewはよくわからないサポート状況と言えます。

ただ、ここまでのシステム要件に関してはそれほど問題ではありません。

問題は、HTMLレンダリングエンジンです。
これが、OSによってかなり異なります。

PlatformCodeRendererProviderBrowser compatibility
GTKgtkWebKitWebKit2
macOS
WebKitWebKit.WKWebView (bundled with OS)
QTqtWebKitQtWebEngine / QtWebKit
WindowsedgechromiumChromium> .NET Framework 4.6.2 and Edge Runtime installedEver-green Chromium
WindowsedgehtmlEdgeHTML> .NET Framework 4.6.2 and Windows 10 build 17110
WindowsmshtmlMSHTMLMSHTML via .NET / System.Windows.Forms.WebBrowserIE11 (Windows 10/8/7)
WindowscefCEFCEF PythonChrome 66

今回の検証では、QtベースのWebKitを導入します。
QtベースのWebKitであれば、Linux・macOSが対象になります。
(検証では、Ubuntuを利用)

そして、Qtベースの場合はPyQt5のインストールが必要になります。
PyQt5のインストールに関しては、次の記事でまとめています。

ただし、個別にPyQt5をインストールする必要はありません。
pywebviewのインストールの際に、PyQt5もまとめてインストールできます。

以上、pywebviewのシステム要件を説明しました。
次は、pywebviewをインストールします。

pywebviewのインストール

検証は、次のバージョンのPythonで行います。
サポート対象外のバージョンですが、問題なくインストールできます。

$ python -V
Python 3.10.2

まずは、現状のインストール済みパッケージを確認しておきます。

$ pip list
Package    Version
---------- -------
pip        22.0.3
setuptools 60.8.2
wheel      0.36.2

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、pywebviewのインストールです。
pywebviewのインストールは、以下のコマンドとなります。

ただ、それぞれのOSでインストールコマンドは異なります。

LinuxとmacOSの場合(PyQt5もまとめてインストール)

pip install pywebview[qt]

Windowsの場合

pip install pywebview[cef]

Windowsへのpywebviewのインストールについては、次の記事で解説しています。

インストールは、それほど時間はかかりません。
終了したら、どんなパッケージがインストールされたのかを確認します。
(以下はLinuxの場合です)

$ pip list
Package           Version
----------------- -------
pip               22.0.3
proxy-tools       0.1.0
PyQt5             5.15.6
PyQt5-Qt5         5.15.2
PyQt5-sip         12.9.1
PyQtWebEngine     5.15.5
PyQtWebEngine-Qt5 5.15.2
pywebview         3.5
setuptools        60.8.2
wheel             0.36.2

依存関係のあるパッケージは、QT関連以外はproxy-toolsだけですね。
Qt関連だけクリアできれば、pywebviewの導入はそれほど困難ではないでしょう。

以上、pywebviewのインストールを説明しました。
次は、pywebviewの動作確認を行います。

pywebviewの動作確認

動作確認には、以下のコードを利用します。
Qtで動くように指定(gui=”qt”)しています。

import webview

webview.create_window('Hello world', 'https://pywebview.flowrl.com/')
webview.start(gui="qt") # QTを利用

上記コードを実行すると、次の画面が表示されます。

この画面が確認できれば、pywebviewの動作確認は成功です。
なお、次のエラーが出る場合はQtのインストール状況を確認しましょう。

webview.util.WebViewException: You must have either QT or GTK with Python extensions installed in order to use pywebview.

以上、pywebviewの動作確認を説明しました。

実際のpywebviewの使い方は、以下で説明しています。

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