RkBlog

Hardware, programming and astronomy tutorials and reviews.

Budowanie binarnych paczek aplikacji PyQt4 pod MS Windows

Przegląd konfiguracji py2exe oraz najpopularniejszych problemów związanych z budowaniem bezzależnościowych binarnych paczek aplikacji PyQt4.

Gotowe aplikacje oparte o PyQt4 dla MS Windows łatwo można zbudować za pomocą py2exe, choć czasami trzeba odpowiednio zbudować, przygotować paczkę. Najprostszy setup.py dla aplikacji PyQt4 wygląda tak:
from distutils.core import setup
import py2exe

setup(windows=[{"script" : "naszplik.py"}], options={"py2exe" : {"includes" : ["sip", ]}})
By zbudować wykonaj:
python setup.py py2exe

Co powinno zbudować binarny "pakiet". Czasami mogą pojawić się problemy z brakującymi DLL - można je pobrać z internetu. Stosując Pythona 2.6 i PyQt4 dla niego możemy potrzebować (i użytkownicy aplikacji) pakietu Microsoft Visual C++ 2008 Redistributable Package - do pobrania bez problemu ze strony Microsoftu (jego brak objawia się tym iż Windows "nie może uruchomić aplikacji z powodu błędnej konfiguracji...").

Dodawanie brakujących modułów PyQt4 - QWebView

W niektórych przypadkach, np. dla QWebView (qt-webkit) py2exe nie dołączy wymaganego modułu QtNetwork - co objawi się wyjątkiem podczas uruchamiania binarnej aplikacji. Rozwiązanie to dołączenie tego modułu do setup.py:
from distutils.core import setup
import py2exe

setup(windows=[{"script" : "run.py"}], options={"py2exe" : {"includes" : ["sip", "PyQt4.QtNetwork"]}})

Brak obsługi niektórych grafik w binarnych pakietach

Czasami pojawia się problem braku "obsługi" niektórych formatów plików graficznych w binarnych paczkach. Rozwiązanie to stworzenie w katalogu binarnej paczki katalogu imageformats, do którego kopiujemy pliki DLL wtyczek Qt dla tych formatów grafik (z instalacji PyQt4). Przykładowa lokacja to: C:\Python26\Lib\site-packages\PyQt4\plugins\imageformats\.

RkBlog

14 January 2009;

Comment article