「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.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
一般的には、Python 3.7以降に対応していればOKというのが現状です。
その意味では、pywebviewはよくわからないサポート状況と言えます。
ただ、ここまでのシステム要件に関してはそれほど問題ではありません。
問題は、HTMLレンダリングエンジンです。
これが、OSによってかなり異なります。
Platform | Code | Renderer | Provider | Browser compatibility |
---|---|---|---|---|
GTK | gtk | WebKit | WebKit2 | |
macOS | WebKit | WebKit.WKWebView (bundled with OS) | ||
QT | qt | WebKit | QtWebEngine / QtWebKit | |
Windows | edgechromium | Chromium | > .NET Framework 4.6.2 and Edge Runtime installed | Ever-green Chromium |
Windows | edgehtml | EdgeHTML | > .NET Framework 4.6.2 and Windows 10 build 17110 | |
Windows | mshtml | MSHTML | MSHTML via .NET / System.Windows.Forms.WebBrowser | IE11 (Windows 10/8/7) |
Windows | cef | CEF | CEF Python | Chrome 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の使い方は、以下で説明しています。