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

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

4 голосов
/ 15 октября 2010

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

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

alt text

Редактировать

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

from distutils.core import setup
import py2exe

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

Ответы [ 3 ]

4 голосов
/ 15 октября 2010

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

Edit:

Ваш скрипт установки указывает, что ваша программа должна быть конвертирована в exe консоли. Если вам нужна программа с графическим интерфейсом (что вы делаете, поскольку вы используете 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'])
0 голосов
/ 05 сентября 2016

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

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

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

перезагрузите ваш cmd или оболочку

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

0 голосов
/ 15 октября 2010

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

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

...