2012-04-23 18 views
5

Używam wxPython od około 2 lat dla kilku małych programów naukowych, które rozprowadzam dla wielu współpracowników. Lubię WXPythona i już go znam, ale jest kilka rzeczy, które doprowadzają mnie do szału (nie z powodu wxPython, właściwie chciałbym go nadal używać):Aplikacje pulpitu Python

1) Mam wielu użytkowników na różnych Systemy operacyjne. Wiem, że wxPython jest platformą wieloplatformową, ale nie mam już żadnych nerwów i czasu na przeniesienie wszystkich moich małych programów (i jeszcze więcej) za każdym razem do różnych systemów operacyjnych. Szczególnie nie używam niektórych z nich (Windows7, Mac), więc trudno mi rozwiązywać problemy i żądania użytkowników.

2) Bardzo często aktualizujemy nasze oprogramowanie (ponieważ cały czas pojawiają się nowe pomysły od użytkowników i nas samych), co oznacza, że ​​muszę generować wszystkie standalony, przesyłać je i użytkownikom, aby mogli je odinstalować i zainstalować ponownie. Paskudne ...

Myślałem już, aby przejść do ram WWW, ale są pewne problemy. Po pierwsze, wielu użytkowników lubi używać mojego oprogramowania w trybie offline, np. kiedy podróżują lub nie mają internetu. Po drugie mamy pewne dane w niektórych bazach danych, które NIGDY nie powinny wchodzić na serwer. Wszystko zależy od patentów i zawsze będzie dyskusja, więc wolę, aby niektóre z moich programów były samodzielnymi aplikacjami komputerowymi, które upraszczają różne rzeczy. Inni mogą być online, bez problemu.

Ogólnie rzecz biorąc, chciałbym mieć rozwiązanie oparte na przeglądarce, ponieważ każdy ma przeglądarkę. Widziałem, że niektórzy ludzie projektowali Django jako samodzielną aplikację komputerową, co nie było dobrym pomysłem. Zaczęłam też mówić o Camelocie, ale myślę, że to raczej baz danych. Camelot byłby przydatny tylko dla niektórych moich narzędzi, które są raczej programami do przeszukiwania i ekstrakcji baz danych. Ale inne nie korzystają w ogóle z baz danych.

Czy ktoś może zasugerować mi, jakie byłoby dobre rozwiązanie dla moich narzędzi?

Odpowiedz

5

Można użyć np. kolba do dostarczania interfejsu użytkownika.

Po prostu napisz do nas aplikacje jako normalne, ale bez GUI (normalnie powinieneś dowolnie oddzielić logikę od GUI). Następnie użyj np. Flask (Bardzo podoba mi się ten mikroforma, ale są też inne, takie jak Bottle), aby napisać interfejs w postaci strony internetowej. Możesz uruchomić tę witrynę lokalnie (jest to jedna linia kodu: app.run(), a następnie otworzyć ją na serwerze internetowym pod adresem URL http://localhost:5000) lub na serwerze internetowym, np. z apache lub nginx.

+0

Brakujący składnik tej odpowiedzi znajduje się tutaj: https://www.reddit.com/r/Python/comments/21evjn/is_it_possible_to_deploydistribute_flask_as_an/. Mówi o tym, jak rozpowszechniać aplikację internetową –

2

Jak korzystać z Flex z Python? Twój interfejs jest przenośny (ponieważ Flex tworzy pliki flash); i możesz użyć Pythona do podłączenia interfejsu.

Dodatkowo możesz zdecydować (na podstawie swojej aplikacji), aby rozmieścić je w Internecie lub owijać je jako natywne pliki wykonywalne za pomocą Flex.

Twoje jedyne wyzwanie byłoby, gdybyś zdecydował się spakować aplikację dla Windows, aby upewnić się, że poprawnie spakujesz Pythona razem z nim (jeśli to konieczne).

1

Może to nie odpowiadać temu, w jaki sposób użytkownicy korzystają z aplikacji, ale jedną z opcji jest utworzenie wirtualnej maszyny z systemem Linux (Virtualbox obsługuje większość popularnych systemów operacyjnych jako hosty) i dystrybucja.

To da ci jeden cel do opracowania, a jako bonus, jeśli przyjrzysz się mechanizmowi aktualizacji wybranej dystrybucji (Apt, Yum itp.), Powinieneś być w stanie dodać własny serwer jako źródło i VM powinna być aktualizowana bez konieczności wykonywania jakichkolwiek czynności przez użytkowników.

+0

To interesujący pomysł, a nawet znalazłem coś podobnego do moich narzędzi przy użyciu maszyny wirtualnej (http://www.dnalinux.com/). Jak powstaje GUI? Czy mogę użyć mojego starego kodu napisanego w wxPython? – snowflake