Как «упаковать» простой однофайловый скрипт на Python для человека, который хочет за него заплатить?

Один человек (пожилой гражданин, изучающий самые основы работы с компьютером) попросил меня сделать программу, которая сэкономит ему МНОГО времени, выполняя рутинную работу. Я сделал скрипт на Python, это просто, командная строка, принимает ввод от пользователя и сохраняет вывод в файл, и все.

Мой первый вопрос связан с выводом скрипта: это не обязательно должен быть графический интерфейс (у меня нет опыта разработки графического интерфейса и сейчас нет времени), но я также думаю, что он не должен быть таким упрощенным, как файл TXT. , так как вывод будет состоять из 40 000+ строк и предназначен для печати (я знаю, что это пустая трата бумаги, и я изо всех сил боролся за то, чтобы он этого не делал, но это его выбор). В какой формат файла я должен его вывести? Может HTML-файл?

Затем он попросил меня записать его на компакт-диск, чтобы он мог просто вставить его в свой ноутбук, запустить напрямую и сохранить результат на «C:». По характеру его вычислительной мощности он должен быть максимально простым и требовать минимального «послепродажного обслуживания». Нет никаких ограничений относительно размера, который вся программа занимает на его компьютере.

Я попытался создать EXE-файл моего скрипта Python с помощью PY2EXE, но когда я запускаю .EXE, он создает выходной файл в той же папке, не открывает «окно», не запрашивает ввод и работает НАВСЕГДА с увеличением размера выходного файла. на 20мб/с! Конечно, когда я запускаю его на обычном питоне, он работает отлично. Я просмотрел другие потоки stackoverflow и следовал параметру 'bundle_files':1, но все же... Я использую Python2.7, должен ли я попробовать PyInstaller? Если да, могут ли люди указать мне хороший учебник?

заранее спасибо


person chiurox    schedule 15.08.2010    source источник
comment
Я только что обнаружил ошибку с моим PY2EXE. Ошибка связана с raw_input, который выдавал мне ошибку EOFError. Это потому, что я сделал исполняемый файл как приложение Windows, а не консоль. raw_input требует std, который, по-видимому, работает с консолью, а не с окнами.   -  person chiurox    schedule 18.08.2010


Ответы (1)


Есть хорошее руководство по PyInstaller здесь. Однако PyInstaller (пока) не поддерживает Python 2.7 (действительно, в Windows, я полагаю, есть проблемы и с 2.6).

В вашем случае использования я бы рекомендовал PortablePython — Python, настроенный для запуска (в Windows) с USB-накопителя. Вы можете легко установить на USB-ключ Python в «портативной» версии, свой скрипт и .bat, который запускает ваш скрипт. Однако PortablePython также еще не поддерживает Python 2.7 (2.6, конечно, без проблем).

Если вы живете на переднем крае — зарабатываете на плате в выпуске, выпущенном так мало времени, что у него еще нет подвыпуска .1 ;-) — неудивительно, что продвинутые сторонние инструменты, такие как поскольку упаковщики еще не полностью поддерживают вас. Какие функции 2.7 (отсутствующие в 2.6) вы используете, чтобы они стоили вам этих хлопот?

person Alex Martelli    schedule 15.08.2010
comment
О, вы попали в точку. На самом деле мне вообще не нужны функции 2.7, я считаю, тем более что я никогда не программировал на Python, пока всего две недели назад. Я просто согласился сделать этот небольшой проект как возможность немного изучить Python и получить за это деньги ;) По сути, я полагаюсь на множество функций itertools, для которых не требуется 2.7, верно? Должен ли я просто установить 2.5 тогда? PortablePython выглядит интересно, будет ли он работать на компакт-диске? Или только записываемые носители, такие как флешка? - person chiurox; 15.08.2010
comment
@chiurox, 2.6 и PortablePython - это то, что я бы предложил - конечно, вашему клиенту будет так же легко вставить USB-накопитель в USB-порт, как вставить компакт-диск в его устройство чтения (а маленькие USB-накопители настолько дешевы, что эти дни, когда вы вполне можете позволить себе дать ему один бесплатно ;-). Я не знаю, будет ли это работать на среде r-o (хотя вам легко попробовать). Версия 2.6 зрелая, надежная и ее стоит использовать по сравнению с версией 2.5, если только последняя вам абсолютно не нужна. itertools есть во всех версиях начиная с 2.3, но лучше и богаче в 2.6 (полдюжины новых функций и возможностей по сравнению с 2.5). - person Alex Martelli; 15.08.2010