Проблемы с Tkinter в py2exe

Я сделал простую программу с графическим интерфейсом на python с помощью tkinter и попытался преобразовать ее в .exe с помощью py2exe. Однако я столкнулся с проблемой. Когда я пытаюсь запустить exe, он очень быстро выдает ошибку, а затем исчезает. Поэтому лучшее, что я мог сделать, это сделать снимок экрана с ошибкой.

Как мне это исправить?

альтернативный текст

Изменить

Velociraptors, это мой установочный файл. Это настолько просто, насколько это возможно. Как мне интегрировать init.tcl в код?

from distutils.core import setup
import py2exe

setup(console=[r'C:\Python26\Random Password Generator.py'])

person rectangletangle    schedule 15.10.2010    source источник


Ответы (3)


Ваш сценарий setup.py включает init.tcl в параметр data_files? В списке параметров py2exe указано, как вы должны включать изображения и другие необходимые файлы данных.

Изменить:

Ваш сценарий установки указывает, что ваша программа должна быть преобразована в консольный исполняемый файл. Если вам нужна программа с графическим интерфейсом (что вам и нужно, поскольку вы используете Tkinter), вам нужно использовать параметр windows:

setup(windows=[r'C:\Python26\Random Password Generator.py'])

Py2exe должен правильно включать зависимости Tkinter. Если нет, вы можете вручную включить init.tcl:

setup(data_files=['C:\Python26\tcl\tcl8.5\init.tcl'],
      windows=[r'C:\Python26\Random Password Generator.py'])
person Velociraptors    schedule 15.10.2010

Убедитесь, что tcl установлен в C:\Users\splotchy\lib\tcl8.5 или C:\Users\lib\tcl8.5.

Если вы хотите, чтобы сообщения об ошибках отображались дольше, запустите программу из командной строки.

person nmichaels    schedule 15.10.2010
comment
@Aneater: Вот почему это терпит неудачу… - person Donal Fellows; 18.10.2010

Я обнаружил ошибку на сайте virutalenv, которая предложила следующее https://github.com/pypa/virtualenv/issues/93

для окон в вашем каталоге «C:\Environments\VirtualEnv\Scripts\activate.bat» просто добавьте, для которых установлен правильный путь к TCL и TK для вашей версии Python

set "TCL_LIBRARY=C:\Python27\tcl\tcl8.5" 
set "TK_LIBRARY=C:\Python27\tcl\tk8.5" 

перезапустите cmd или оболочку

Я считаю, что расположение TCL изменилось по сравнению с тем, что было по умолчанию.

person JamesD    schedule 05.09.2016