Понимание того, какие файлы в TCL необходимы для распространения замороженных приложений Python Tkinter

Я пытаюсь выяснить, какие файлы в папке tcl Python (Python 2.6 / Python 2.7) необходимы для распространения замороженных приложений Python Tkinter с использованием Py2exe или аналогичного.

Быстрый и грязный способ сделать это (используя pyexe в качестве примера) - следовать второму примеру на следующей странице, а затем скопировать папку tcl вашего python в вашу папку dist (как подпапку tcl). http://www.py2exe.org/index.cgi/TixSetup

Проблема с техникой xcopy tcl заключается в том, что она копирует сотни дополнительных файлов, которые могут не понадобиться для распространения.

Например, мои эксперименты показывают, что следующие папки tcl могут (???) не понадобиться при замораживании приложений Python 2.7 Tkinter:

Примечание. Числовые размеры представляют собой сумму всех файлов на каждом из этих путей.

  • tcl \ tcl8.5 \ encoding 1415K (удалить неприменимые кодировки? любые необходимые для UTF-8 / Unicode?)
  • tcl \ tcl8.5 \ tzdata 1450K (данные часового пояса для демонстрации часов tcl?)
  • tcl \ tcl8.5 * .tcl 256 КБ
  • tcl \ tix8.4.3 \ demos 246K
  • tcl \ tk8.5 \ demos 685K

Я на правильном пути или не буду включать вышеупомянутый контент tcl, укусит меня в задницу в будущем?

Еще лучше, есть ли какая-то документация относительно файлов в папке Python tcl?

Спасибо, Малькольм


person Malcolm    schedule 10.10.2010    source источник


Ответы (2)


Вам не нужны демоверсии (надеюсь; если да, то это мерзко!), Но все остальное потенциально необходимо; кодировки используются для преобразования байтов внешнего мира в символы Tcl, а tzdata используется для обработки времени. Вы можете обрезать кодировки и tzdata, если вы доставляете приложение на небольшой целевой рынок - действительно, в Unix вы можете исключить все tzdata, потому что в системе будет -date version - но вы должны знать, что ограничиваете переносимость кода.

person Donal Fellows    schedule 11.10.2010
comment
Спасибо, Донал. Похоже, демонстрации точно не нужны. Думаю, кодировки тоже необязательны. Я тестирую Unicode без папки кодировок, и все по-прежнему работает. - person Malcolm; 22.10.2010
comment
Это тоже зависит от ОС. Я думаю, что вы могли бы избавиться от кодировок в Win и OSX, поскольку они, как правило, так или иначе являются платформами UNICODE. Unix (особенно Linux) - это немного более изменчивый IIRC, особенно при использовании устаревших шрифтов. - person Donal Fellows; 22.10.2010
comment
Было бы замечательно, если бы это множество файлов (сотни?) Можно было бы встроить в один tcl.dll, tk.something или что-то еще ... Мне не нравится распространять пакет с сотнями файлов ... Это то, что производит Py2exe (сотни файлов в подпапках tcl, tk). - person Basj; 07.12.2013
comment
@Basj: Мы знаем, мы знаем. Пока что это делают только ActiveState, и то только в качестве коммерческого продукта. Я также знаю, что сборка этих версий с батарейками действительно сложна. Ключевой вопрос заключается в том, что это действительно довольно сложно сделать правильно, и все, кто решился на это до сих пор, решили оставить это как коммерческое или создать что-то слишком сложное для нормального использования. - person Donal Fellows; 08.12.2013
comment
С другой стороны, zipkits (которые являются частью ODIE) выглядят, по крайней мере, как они может делать часть того, что требуется. У них есть преимущество в том, что они не нуждаются в таком экзотическом наборе инструментов для создания, как некоторые из прошлых альтернатив в этой области. Предупреждение: это еще не полное решение (особенно для DLL), а остальная часть ODIE местами немного сумасшедшая. - person Donal Fellows; 08.12.2013
comment
Спасибо @DonalFellows за ваш ответ. Я не знал, насколько сложно упаковать все эти \tcl папки и подпапки в один файл .dll ... Может, есть простой py2exe вариант? - person Basj; 08.12.2013

Донал, конечно, прав. Однако ваш вопрос мотивирует по крайней мере несколько других людей; если вы хотите продолжить, я настоятельно рекомендую вам проверить список рассылки Tkinter и связанный с ним Wiki.

person Cameron Laird    schedule 13.10.2010
comment
Также оцените ссылки. - person Malcolm; 22.10.2010