2021/05/03(月) [n年前の日記]
#1 [wxpython][ubuntu] wxPython関係をUbuntu 20.04上で試用
wxBasic を触った際に、「wxWidgets を使いたいなら Python + wxPython を使えばいいし」と呟いてしまったけれど。Linux上で wxPython をインストールできるのかなと気になったので、Ubuntu Linux 20.04 LTS x64上で wxPython を試しにインストール。
一応、Python のバージョンをメモ。
Ubuntu Linux 20.04 LTS で pip2 をインストールする手順は、以下が参考になる。
_How to Install Python Pip on Ubuntu 20.04 | Linuxize
一応、Python のバージョンをメモ。
$ python --version Python 2.7.18 $ python2 --version Python 2.7.18 $ python3 --version Python 3.8.5 $ pip2 --version pip 20.3.4 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7) $ pip3 --version pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
Ubuntu Linux 20.04 LTS で pip2 をインストールする手順は、以下が参考になる。
_How to Install Python Pip on Ubuntu 20.04 | Linuxize
◎ wxPythonをインストール。 :
一般的には pip install wxPython でインストールできるらしいのだけど、Ubuntu Linux 上でソレをやるとエラーが出てインストールできない場合があるそうで。
ただ、Ubuntu Linux は、パッケージが用意されているので、apt でインストールできそう。パッケージ一覧を眺めると、以下がなんとなくそれっぽい。
apt でインストール。
ちょっとバージョンが古い気もするけど、インストールできたっぽい。
以下、参考ページ。
_[Python] Ubuntu 19.10でwxPython : mackroの製作日記
_Ubuntu18.04 にpipでwxPython(Phoenix)をインストール - ろぐれこーど
何かサンプルを動かしてみる。
_wxPythonを使ってみる (1) - Qiita
01_window_display01.py
ウインドウが表示された。たしかに動作してくれた。
ただ、Ubuntu Linux は、パッケージが用意されているので、apt でインストールできそう。パッケージ一覧を眺めると、以下がなんとなくそれっぽい。
python-wxgtk3.0 python2.7-wxgtk3.0 python3-wxgtk4.0
apt でインストール。
sudo apt install python-wxgtk3.0 python3-wxgtk4.0
$ pip3 list | grep wx wxPython 4.0.7 $ sudo apt show python3-wxgtk4.0 Package: python3-wxgtk4.0 Version: 4.0.7+dfsg-2build1 ... Provides: python3.8-wxgtk4.0 Depends: python3-pil, python3-six, python3 (<< 3.9), python3 (>= 3.8~), python3:any, libc6 (>= 2.14), libgcc-s1 (>= 3.0), libstdc++6 (>= 5.2), libwxbase3.0-0v5 (>= 3.0.4+dfsg), libwxgtk3.0-gtk3-0v5 (>= 3.0.4+dfsg-10~), sip-py3api-12.7 Suggests: wx3.0-doc ... $ pip2 list | grep wx wxPython 3.0.2.0 wxPython-common 3.0.2.0 $ sudo apt show python-wxgtk3.0 Package: python-wxgtk3.0 Version: 3.0.2.0+dfsg-8build1 ... Provides: python2.7-wxgtk3.0 Depends: python-wxversion, python2 (<< 2.8), python2 (>= 2.7~), python2:any (<< 2.8), python2:any (>= 2.7~), libc6 (>= 2.14), libgcc1 (>= 1:3.0), libstdc++6 (>= 5.2), libwxbase3.0-0v5 (>= 3.0.4+dfsg), libwxgtk3.0-gtk3-0v5 (>= 3.0.4+dfsg-10~) Suggests: wx3.0-doc ...
ちょっとバージョンが古い気もするけど、インストールできたっぽい。
以下、参考ページ。
_[Python] Ubuntu 19.10でwxPython : mackroの製作日記
_Ubuntu18.04 にpipでwxPython(Phoenix)をインストール - ろぐれこーど
何かサンプルを動かしてみる。
_wxPythonを使ってみる (1) - Qiita
01_window_display01.py
import wx app = wx.App() frame = wx.Frame(None, -1, 'Hello,World!',size=(500,500)) frame.Show() app.MainLoop()
python 01_window_display01.py python3 01_window_display01.py
ウインドウが表示された。たしかに動作してくれた。
◎ wxFormBuilderをインストール。 :
wxFormBuilder を使うと、wxWidgets を使ったGUIアプリの画面レイアウトを見た目で調整しながら作っていける。ちなみに、この手のツールは RAD と呼ばれたりもする。
_wxFormBuilder/wxFormBuilder: RAD tool for wxWidgets GUI design
_Releases - wxFormBuilder/wxFormBuilder
_Learn python3 programming gui with wxpython interface library example - Programmer Sought
_Rapid Application Development - Wikipedia
wxFormBuilder を Ubuntu Linux 20.04 LTS x64 上でインストールできるか試してみた。
githubには flatpak 形式のファイルが置いてあった。ソレを使えば動かせそう。
まずは、Ubuntu Linux 20.04 LTS 上で flatpak を使える状態にする。
wxFormBuilder の flatpak を入手してインストール。
flatpak list と打てば、インストールされているアプリの一覧が見れる。
wxFormBuilder という文字列が見える。インストールできた模様。
実行は、以下。
起動してくれた。
また、VMware上で動かした Ubuntu Linux 20.04 LTS x64 の場合、Ubuntuデスクトップのスタートメニュー → 開発 → wxFormBuilder、という項目が増えていて、ソレをクリックすることで起動もできた。
しかし、実機で動かしてる Ubuntu Linux 20.04 LTS x64 でインストールしてみたところ、スタートメニューに該当項目は登録されてなかった。何故…。
とりあえず、実機上ではメニューエディタ(menulibre)を使って項目を追加登録した。
wxFormBuilder のアイコンファイルの場所は以下。だと思う。たぶん。
また、以下の場所に .desktopファイル(スタートメニューに登録されるはずのファイル)も入っているようではある…。
以下のページを参考にして動作確認。説明通りに試していったら、それらしく動いてくれた。ありがたや。
_wxPythonのGUIデザイナーwxFormBuilderを使ってみる - naonaorange's blog
余談。Windows10 x64 20H2 上では、wxFormBuilder_v3.9.0.exe をDLして実行すればインストールできる。wxFormBuilder.exe を実行すれば起動する。
_wxFormBuilder/wxFormBuilder: RAD tool for wxWidgets GUI design
_Releases - wxFormBuilder/wxFormBuilder
_Learn python3 programming gui with wxpython interface library example - Programmer Sought
_Rapid Application Development - Wikipedia
wxFormBuilder を Ubuntu Linux 20.04 LTS x64 上でインストールできるか試してみた。
githubには flatpak 形式のファイルが置いてあった。ソレを使えば動かせそう。
まずは、Ubuntu Linux 20.04 LTS 上で flatpak を使える状態にする。
sudo apt install flatpak sudo apt install gnome-software-plugin-flatpak flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo sudo reboot
wxFormBuilder の flatpak を入手してインストール。
wget https://github.com/wxFormBuilder/wxFormBuilder/releases/download/v3.9.0/wxformbuilder.flatpak flatpak install ./wxformbuilder.flatpak flatpak list
flatpak list と打てば、インストールされているアプリの一覧が見れる。
$ flatpak list Name Application ID Version Branch Origin Installation Freedesktop Platform org.freedesktop.Platform 18.08.39 18.08 flathub system html5-codecs org.freedesktop.Platform.html5-codecs 18.08 flathub system Greybird GTK+ Theme org.gtk.Gtk3theme.Greybird 3.22 flathub system Yaru Gtk Theme org.gtk.Gtk3theme.Yaru 3.22 flathub system wxFormBuilder org.wxformbuilder.wxFormBuilder 3.9.0 master wxformbuilder-origin system
wxFormBuilder という文字列が見える。インストールできた模様。
実行は、以下。
flatpak run org.wxformbuilder.wxFormBuilder
起動してくれた。
また、VMware上で動かした Ubuntu Linux 20.04 LTS x64 の場合、Ubuntuデスクトップのスタートメニュー → 開発 → wxFormBuilder、という項目が増えていて、ソレをクリックすることで起動もできた。
しかし、実機で動かしてる Ubuntu Linux 20.04 LTS x64 でインストールしてみたところ、スタートメニューに該当項目は登録されてなかった。何故…。
とりあえず、実機上ではメニューエディタ(menulibre)を使って項目を追加登録した。
wxFormBuilder のアイコンファイルの場所は以下。だと思う。たぶん。
/var/lib/flatpak/app/org.wxformbuilder.wxFormBuilder/current/active/files/share/icons/org.wxformbuilder.wxFormBuilder.png
また、以下の場所に .desktopファイル(スタートメニューに登録されるはずのファイル)も入っているようではある…。
/var/lib/flatpak/app/org.wxformbuilder.wxFormBuilder/x86_64/master/active/files/share/applications/org.wxformbuilder.wxFormBuilder.desktop本来は、このファイルが、しかるべき場所にコピーされるのかもしれない。ちなみに中身はテキストファイルなので、眺めてみれば何か参考になりそう。
以下のページを参考にして動作確認。説明通りに試していったら、それらしく動いてくれた。ありがたや。
_wxPythonのGUIデザイナーwxFormBuilderを使ってみる - naonaorange's blog
余談。Windows10 x64 20H2 上では、wxFormBuilder_v3.9.0.exe をDLして実行すればインストールできる。wxFormBuilder.exe を実行すれば起動する。
◎ wxGladeをインストール。 :
wxWidgets を使ったGUIアプリの画面レイアウトを作れるツールとして、wxFormBuilder の他にも、wxGlade というツールがある。Ubuntu Linux 20.04 LTS上で wxGlade のインストールを試みた。
パッケージが一応用意されているので、apt でインストールできそうな感じに見えるのだけど…。
結論を先に書いておくけど、Python 3.8 がインストールされた環境では、apt でインストールできる wxGlade は正常動作しない模様。
一応、失敗した流れをメモ。
しかし、プロジェクトを作って保存して、また開こうとすると必ずエラーが出る。エラー内容は以下。
issue が出ていた。
_module 'time' has no attribute 'clock' - Issue #381 - wxGlade/wxGlade
Python 3.8 で time.clock() は無くなったので、それでエラーが出る模様。つまり、apt で入手できる wxGlade は、古くて動かないということだろう…。apt版は動かないことが分かったので、アンインストール。
では、どうするか。現行版の wxGlade は Pythonスクリプト群で出来ているので、公式サイトから wxGlade の zip を入手すれば、それで済む。
_wxGlade: a GUI builder for wxWidgets/wxPython
_wxGlade download | SourceForge.net
wxGlade-1.0.1.zip をDLして解凍。
python wxglade.py で実行できる。このバージョンなら、保存したプロジェクトファイルを開くこともできた。
余談。Windows10 x64 20H2上でも、wxGlade-1.0.1.zip を解凍して任意のフォルダに置いて、python wxglade.py を実行すれば起動する。動作には、Python + wxPython が必要。今回は、Python 3.8.7 x64 + wxPython 4.1.1 の環境で動いてくれた。
パッケージが一応用意されているので、apt でインストールできそうな感じに見えるのだけど…。
結論を先に書いておくけど、Python 3.8 がインストールされた環境では、apt でインストールできる wxGlade は正常動作しない模様。
一応、失敗した流れをメモ。
sudo apt install wxgladeUbuntuデスクトップのスタートメニュー → 開発 → wxGlade、で起動。もしくは端末上で wxglade と打って起動。
しかし、プロジェクトを作って保存して、また開こうとすると必ずエラーが出る。エラー内容は以下。
ERROR : None An unexpected error occurred! Exception type: <class 'AttributeError'> Exception details: module 'time' has no attribute 'clock' Application stack traceback: File "/usr/share/wxglade/main.py", line 895, in open_app self._open_app(infile) File "/usr/share/wxglade/main.py", line 907, in _open_app start = time.clock() Date and time: 2021-05-03T03:16:57.397875 Python version: 3.8.5 wxPython version: 4.0.7 wxWidgets platform: __WXGTK__ wxGlade version: 0.9.4
issue が出ていた。
_module 'time' has no attribute 'clock' - Issue #381 - wxGlade/wxGlade
Python 3.8 で time.clock() は無くなったので、それでエラーが出る模様。つまり、apt で入手できる wxGlade は、古くて動かないということだろう…。apt版は動かないことが分かったので、アンインストール。
sudo apt remove wxglade
では、どうするか。現行版の wxGlade は Pythonスクリプト群で出来ているので、公式サイトから wxGlade の zip を入手すれば、それで済む。
_wxGlade: a GUI builder for wxWidgets/wxPython
_wxGlade download | SourceForge.net
wxGlade-1.0.1.zip をDLして解凍。
unzip wxGlade-1.0.1.zip
python wxglade.py で実行できる。このバージョンなら、保存したプロジェクトファイルを開くこともできた。
余談。Windows10 x64 20H2上でも、wxGlade-1.0.1.zip を解凍して任意のフォルダに置いて、python wxglade.py を実行すれば起動する。動作には、Python + wxPython が必要。今回は、Python 3.8.7 x64 + wxPython 4.1.1 の環境で動いてくれた。
◎ メニューエディタについて。 :
Ubuntuデスクトップのスタートメニュー内を編集する場合、以下が参考になりそう。
_Ubuntu(Unity)のランチャーに自分でアプリを登録する方法
_Linux - Xubuntu - 19.04 - 基本操作 - メニューエディタインストール
_PythonやRuby等のスクリプトをUbuntuデスクトップのメニューに追加する - GNOME メニュー編集用ツール alacarte - - Qiita
alacarte(メインメニュー)、もしくは、menulibre (メニューエディタ)で編集できるのだな…。
_Ubuntu(Unity)のランチャーに自分でアプリを登録する方法
_Linux - Xubuntu - 19.04 - 基本操作 - メニューエディタインストール
_PythonやRuby等のスクリプトをUbuntuデスクトップのメニューに追加する - GNOME メニュー編集用ツール alacarte - - Qiita
alacarte(メインメニュー)、もしくは、menulibre (メニューエディタ)で編集できるのだな…。
sudo apt install alacarte menulibre
[ ツッコむ ]
以上、1 日分です。