2012-03-02 19 views
13

Wymaganiem jest uczynienie aplikacji przenośną, czyli bez instalatora. Spojrzałem na py2exe i obawiam się, że muszę uruchomić instalację, jeśli chcę go uruchomić pod Windows.Jak utworzyć aplikację pulpitu przenośnego Pythona?

Moje pytanie brzmi: czy mogę wykonać przenośną aplikację Pythona bez instalacji (wszystkie zależności i biblioteki są spakowane), czy przeciągnięcie z USB/CD spowoduje uruchomienie?

(Jest to niezwykle ważne, ponieważ jest to ból głowy dla użytkowników, aby zainstalować bibliotekę C++ Run Time ...)

Dzięki.

+0

Mówisz, że to bóle głowy dla użytkowników, aby zainstalować bibliotekę wykonawczą C++ ... dlaczego nie uwzględniać tego w instalatorze twojego programu? Mam spakowane oprogramowanie Python z py2exe przy użyciu Inno Setup do instalacji. Po prostu instalator uruchamia redystrybucję Visual C++ z flagami '/ qb', więc użytkownik nie musi nic robić. –

+0

@ Series8217 Dziękuję. Myślę, że mogę to zrobić, ale głównym punktem jest bez instalatora; jeśli może być przenośny, fajnie! – CppLearner

Odpowiedz

9

Można użyć tej metody z py2exe: http://www.py2exe.org/index.cgi/SingleFileExecutable

Zasadniczo, można użyć NSIS pakować wszystkie wymagane pliki i foldery w jednym pliku wykonywalnego. Po uruchomieniu żądane pliki są rozszerzane do katalogu tymczasowego, uruchamiany jest plik wykonywalny, a po jego zakończeniu pliki tymczasowe są usuwane automatycznie.

Istnieje również przykład, który pochodzi z py2exe, który używa Inno Setup zamiast NSIS, aby osiągnąć ten sam wynik. Jest zainstalowany na site-packages\py2exe\samples\extending.

+0

Dziękuję. Przeczytałem to, proszę poprawić, jeśli się mylę: więc po skompilowaniu instalatora mogę skopiować cały folder na inny komputer. Uruchom plik wykonywalny, wygeneruje on odpowiednie pliki, takie jak biblioteki dll w folderze tmp, które zostaną usunięte po zamknięciu aplikacji przez użytkownika. Moja aplikacja wymaga trwałości, ponieważ mamy bazę danych XML, więc nie chcemy niszczyć rekordów. Skąd mam wiedzieć, co powstaje w tmp? Dzięki. – CppLearner

+0

@CppLearner Right. Po skompilowaniu "instalatora" jedynym plikiem wykonywalnym, który musisz przenieść na inny komputer, jest "instalator". Po uruchomieniu tego pliku wykonywalnego rozpakowuje jego zawartość (plik exe aplikacji i wymagane pliki DLL itp.), Uruchamia aplikację, a gdy aplikacja wychodzi, usuwa folder tymczasowy. Możesz kontrolować zachowanie, edytując przykładowy skrypt NSIS. –

+1

@CppLearner Jeśli chcesz mieć trwałe dane, przechowuj je tam, gdzie powinny ... "% homepath% \ AppData \ MyXMLDB' lub coś podobnego. Wtedy aplikacja zawsze może ją znaleźć, niezależnie od miejsca, w którym ją uruchomisz. –

3

Można również rozwidlać Portable Python i modyfikować, aby uwzględnić aplikację i biblioteki, których potrzebujesz. Działa z dowolnego miejsca na dysku/sieci bez instalacji i możesz wybrać, czy chcesz mieć rdzeń Python oparty na 2.xx lub 3.xx

Powiązane problemy