2010-10-15 1 views
4

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

Как я могу это исправить?

alt text

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

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

from distutils.core import setup 
import py2exe 

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

ответ

4

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

Edit:

Ваша установка скрипта указывает, что программа должна быть преобразована в консоли ехе. Если вы хотите программу GUI (который вы делаете, так как вы используете 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

Наверное, нет, см. Править. – rectangletangle

0

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

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

+0

Я не вижу его ни под любыми каталогами ... – rectangletangle

+0

@Anteater: Вот почему он терпит неудачу ... –

0

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

для окон в каталоге «C: \ Environments \ VirtualEnv \ Scripts \ активировать. летучая мышь»просто добавить, которые установлены на правильном пути к TCL и ТЗ для питона версии

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

перезагрузить ЦМД или оболочки

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