2012-10-01 21 views
7

Moje pytanie dotyczy łatwości dystrybucji aplikacji GUI na wszystkich platformach (Mac/Linux/Windows), i chcę poznać tę, która sprawia, że ​​praca użytkownika jest najłatwiejsza .Python GUI Dystrybucja aplikacji: napisana w wxPython, TKinter lub QT

Moje obecne rozumienie jest takie, że aplikacja Tkinter jest najłatwiejsza dla użytkowników (do instalacji), ponieważ tak długo, jak użytkownik ma zainstalowany Python w swoim pudełku, moja aplikacja powinna być gotowa do uruchomienia na tym pudełku.

Dla aplikacji GUI napisanej w wxPython lub pyQT, użytkownik musi najpierw zainstalować wxWidget lub QT w swoim pudełku, co jest dodatkowym krokiem, a następnie zainstalować moją aplikację GUI. (Wydaje mi się, że moje pudełko Ubuntu ma biblioteki wxWidget i biblioteki QT zainstalowane domyślnie, czy to norma czy po prostu dystrybucja Ubuntu jest bardziej przyjazna dla użytkowników? Domyślam się, że Windows i Mac prawdopodobnie nie zapewniają ich przez defesst, tj. Użytkownicy potrzebują aby pobrać i zainstalować je jako dodatkowy krok)

+2

Nie ma gwarancji, że będzie tkinter być dostępne tylko dlatego, że Python jest. Jest to moduł rozszerzający, który można podzielić na osobny pakiet. Dystrybucja systemu Mandriva Linux to robi i prawdopodobnie są inne. – ekhumoro

Odpowiedz

8

Jeśli używasz Kubuntu, PyQt zostanie zainstalowany domyślnie. Większość dystrybucji Linuksa będzie domyślnie instalowała jeden z PyGtk lub PyQt. WxPython został najprawdopodobniej zainstalowany w twoim Ubuntu box jako zależność dla jakiejś innej paczki w twoim systemie.

Jeśli twoim rynkiem docelowym jest Linux, możesz po prostu utworzyć pakiet deb lub rpm, który zajmie się zależnościami dla twojej aplikacji.

dla Windows i Mac Linux (a nawet jeśli jesteś tak skłonny) można Bundle interpreter Pythona z aplikacją i to biblioteki w natywnym formacie pliku wykonywalnego, takich jak .exe lub .elf użyciu bibliotek jak cx_freeze, py2exe i py2app. Gdy to zrobisz, twój użytkownik nie będzie musiał instalować python lub żadnej z twoich bibliotek.

+6

[PyInstaller] (http://www.pyinstaller.org/) jest wieloplatformowy i obsługuje wiele bibliotek zewnętrznych, takich jak PyQt, wxPython out-of-the-box – jfs

+0

PyInstaller również działa świetnie. – prabu

4

Tkinter jest jedynym, który jest dołączony do Pythona. WxPython i pyQT potrzebują zarówno biblioteki wxWindows, jak i biblioteki QT do zainstalowania w systemie.

Jednak TK nie wygląda ładnie. Jeśli już instalujesz Pythona, możesz równie dobrze zainstalować biblioteki. (A może dołączyć instalator lub coś takiego.)

+0

Myślę, że komentarz na temat wyglądu Tk jest tutaj nie na miejscu. Pytanie nie dotyczy tego, który zestaw narzędzi wybrać, ale jakie są opcje wdrożenia. Dodatkowo, wygląd Tk jest wysoce subiektywny, więc odrzuca odpowiedź, IMO. –

+3

Poza tym, z nową biblioteką Ttk Tkintera (dostępną w Pythonie 2.7+ lub na http: //pypi.python.org/pypi/pyttk), możesz sprawić, że aplikacje Tkinter będą wyglądały całkiem nieźle. –

2

Jeśli aplikacja ma być wieloplatformowa, sugerowałbym WxWidgets (wxpython). Używałem go kilka razy i nigdy nie było problemu.

Należy jednak utworzyć różne instalatory dla systemów Windows, Mac i Linux. W Linuksie użyj .deb lub .rpm, aby zająć się zależnościami.

W systemie Windows zawsze używałem py2exe do utworzenia pliku exe. Py2exe działa poprzez dołączenie interpretera python i potrzebnych bibliotek, w tym przypadku wxWidgets.

Sprawdź ten link, aby uzyskać więcej informacji: http://www.py2exe.org/

+1

Myślę, że komentarz dotyczący wyboru wxWidgets jest tutaj nie na miejscu. Pytanie nie dotyczy tego, który zestaw narzędzi jest najlepszy, chodzi o opcje wdrażania. Powiedzenie "Wybieram X", gdy pytanie nie dotyczy wyboru "X", może zapraszać do up-głosów i głosowań oddanych tylko dlatego, że ktoś lubi lub nie lubi wxPython. Myślę, że pytanie byłoby lepsze, gdybyś trzymał się tematu wdrożenia. O ile jednak nie mówisz, że wxPython jest łatwiejszy do wdrożenia, w takim przypadku powinieneś wyjaśnić dlaczego. –