Важные пакеты и модули не совместимы с py2exe? - PullRequest
2 голосов
/ 26 мая 2010

Существуют ли основные / общие / важные пакеты, которые py2exe не может обработать?

В настоящее время я изучаю возможность создания .exe из программы на Python, которая будет использовать Tkinter, некоторый модуль чтения файлов Excel, NumPy, SciPy и matplotlib: реально ли попытаться достичь этого с помощью py2exe?

Ответы [ 2 ]

3 голосов
/ 26 мая 2010

Я регулярно собираю исполняемые файлы для одного файла py2exe, используя модули Scipy, matplotlib, wxpython и win32com или модули Machin xlrd / xlwt.Никогда не использовал Tkinter, но это не должно быть проблемой, вероятно, wxpython более требователен.

Я обнаружил некоторые проблемы с numpy / scipy, matplotlib и wxpython до и после сборки исполняемого файла, но после того, как вы знаете, что делать, это работаетsmoothy.

Некоторые проблемы:

matplotlib требует указать, где находятся некоторые вспомогательные архивы.Вам нужно добавить в ваш setup.py

datafiles = matplotlib.get_py2exe_datafiles()

numpy / scipy, что вызвало у меня некоторые проблемы из-за некоторых выражений в модулях при выполнении исполняемого файла py2exe.У Numpy есть несколько строк, таких как:

__doc__ += "something more"

, которые завершаются неудачно, когда __doc__ - None.
Для этого мне пришлось вручную изменить скрипты numpy (включая if).Я не знаю, было ли это решено в новых версиях.

wxpython, как правило, является источником проблем из-за некоторых необходимых Microsoft библиотеки, которые должны присутствовать в компьютере для работы.Нужно быть осторожным, гарантируя, что вы предоставите их в своем пакете, или, по крайней мере, предупредите своих пользователей об этой проблеме.

Некоторые полезные советы также можно найти в py2exe и wxpython. вики

2 голосов
/ 26 мая 2010

Реально попробовать, конечно. Возможно, вы столкнетесь с несколькими проблемами, но я сомневаюсь, что вы достигнете блокировщика, особенно с очень распространенными пакетами.

Вы можете посмотреть, насколько хорошо py2exe работает с различными библиотеками здесь:

http://www.py2exe.org/index.cgi/WorkingWithVariousPackagesAndModules

За все, что не перечислено там, включите быстрый Google для py2exe <package-name>

...