py2exe "include" модули: когда ими нужно управлять вручную?
Когда необходимо указывать модули для включения? Разве py2exe не ищет и не включает в себя все, что нужно для: http://www.py2exe.org/index.cgi/FAQ?
И почему он включает модули, которые не используются, такие как ["Tkconstants", "Tkinter", "tcl", "wx"] (я использую Qt, но на моем компьютере установлен wx), которые затем необходимо быть исключенным?
1 ответ
py2exe пытается создать график всех зависимостей, начиная с вашего сценария точки входа. Это не всегда может быть правильно на 100%, поэтому вам предоставляется includes
а также excludes
варианты тонкой настройки пакета.
Смотрите параметры здесь: http://www.py2exe.org/index.cgi/ListOfOptions
Иногда модули, которые вам не нужны, будут включены, и если это произойдет, просто добавьте их в исключение. Я полагаю, что ответ на ваш вопрос будет следующим: управляйте файлом setup.py вручную, когда стандартные параметры не упаковывают его так, как вам нужно.
Файлы справки для py2exe на самом деле включают в себя кучу советов и хитростей... один, специально предназначенный для решения вашей проблемы с включенным Tk: http://www.py2exe.org/index.cgi/TkInter
Индекс советов и подсказок находится здесь: http://www.py2exe.org/index.cgi/Py2Exe
Я построил тонну приложений, используя очень похожие py2app
для осс. В разных версиях иногда они меняют способ обнаружения зависимостей. Он также использует различные "рецепты" для обработки определенных пакетов, таких как Qt. Внезапно началась новая версия p2app, включающая все модули PyQt, а не только те, которые я использовал. Итак, мне пришлось добавить их в мои исключения.