2010-08-15 6 views
5

Osoba (starszy obywatel, który uczy się podstaw komputerów), poprosiła mnie o wykonanie programu, który pozwoli mu zaoszczędzić wiele czasu dzięki gruntowemu zadaniu. Zrobiłem skrypt w Pythonie, jest prosty, wiersz poleceń, pobiera dane wejściowe od użytkownika i zapisuje dane wyjściowe do pliku i to wszystko.Jak spakować prosty, jednoplikowy skrypt Pythona dla osoby, która chce za to zapłacić?

Moje pierwsze pytanie związane jest z wynikami skryptu: Nie musi to być GUI (nie mam doświadczenia z GUI i obecnie nie ma czasu), ale myślę, że nie powinno tak być Uproszczony jak plik TXT, ponieważ wydruk ma mieć 40 000 linii i jest przeznaczony do drukowania (wiem, że to strata papieru i ciężko walczyłem, aby nie zrobił tego, ale to jego wybór). Jaki format pliku powinienem wyprowadzić? Może plik HTML?

Następnie poprosił mnie, żebym wypalił go na płycie CD, aby mógł po prostu włożyć go do swojego laptopa i uruchomić bezpośrednio i zapisać wynik na "C:". Ze względu na swoją pojemność obliczeniową, musi być tak prosty, jak to tylko możliwe i wymagać najmniej "usługi po". Nie ma ograniczeń dotyczących rozmiaru całego programu znajdującego się w jego komputerze.

Próbowałem stworzyć plik EXE mojego skryptu Python z PY2EXE, ale po uruchomieniu .EXE, tworzy plik wyjściowy w tym samym folderze, nie otwiera "okna", prosi o brak danych wejściowych i uruchamia FOREVER, z Rozmiar pliku wyjściowego wzrasta o 20mb/s! Oczywiście, kiedy uruchomię go na zwykłym pythonie, działa idealnie dobrze. Przeglądałem inne wątki stackoverflow i śledziłem parametr "bundle_files": 1, ale nadal ... Używam Python2.7, czy powinienem spróbować PyInstaller? Jeśli tak, czy ludzie mogą wskazać mi dobry samouczek?

góry dzięki

+0

Właśnie znalazłem błąd z moim PY2EXE. Błąd polegał na raw_input, który dawał mi EOFError. Jest tak, ponieważ wykonałem plik wykonywalny jako aplikację Windows, a nie konsolę. raw_input wymaga std, który najwyraźniej działa z konsolą, a nie z oknami. – chiurox

Odpowiedz

6

Jest to dobry poradnik PyInstaller here. Jednak PyInstaller (jeszcze) nie obsługuje Pythona 2.7 (w istocie, w Windowsie, wierzę, że są też problemy z 2.6).

W Twoim przypadku użycia polecam PortablePython - Python skonfigurowany do uruchamiania (w systemie Windows) z klucza USB. Możesz z łatwością założyć Python na klucz USB w wersji "portable", twoim scenariuszu i .bat, który uruchamia twój skrypt. Jednak PortablePythonrównież nie obsługuje jeszcze Pythona 2.7 (2.6, oczywiście, nie ma problemu).

Jeśli mieszkasz na krawędzi krwawienia - robiąc płatną pracę w wydaniu, które trwało tak krótko, że nie ma jeszcze subskrypcji .1 ;-) - nic dziwnego, że zaawansowana trzecia -przykładowe narzędzia, takie jak programy pakujące, jeszcze nie w pełni Cię wspierają. Jakie funkcje 2.7 (nie występujące w 2.6) używasz, aby być tym wartym dla ciebie kłopotem?

+0

Och, masz rację. Właściwie nie potrzebuję 2.7 funkcji na WSZYSTKO wierzę, zwłaszcza, że ​​nigdy nie programowałem w Pythonie jeszcze dwa tygodnie wcześniej. Po prostu zgodziłem się zrobić ten mały projekt jako okazję do nauki Pythona i zarabiania na nim;) Zasadniczo polegam na wielu funkcjach itertools, które nie wymagają 2.7, prawda? Czy powinienem zainstalować 2,5? PortablePython wygląda interesująco, czy będzie działać, jeśli działa na płycie CD? Lub tylko zapisywalne nośniki takie jak pendrive? – chiurox

+0

@chiurox, 2.6 i PortablePython to coś, co mógłbym zasugerować - z pewnością byłoby tak łatwo dla twojego klienta wsunąć dysk USB do portu USB, aby włożyć płytę CD do czytnika (a małe dyski USB są tak tanie w tych dniach możesz sobie pozwolić, aby dać mu za darmo ;-).Nie wiem, czy działałoby to na medium r-o (łatwe do wypróbowania). 2.6 jest dojrzały, solidny i warty użycia ponad 2,5, chyba że absolutnie musisz mieć to ostatnie. 'itertools' jest we wszystkich wersjach od wersji 2.3, ale lepsze i bogatsze w wersji 2.6 (pół tuzina nowych funkcji i funkcji 2.5). –

Powiązane problemy