Я пытаюсь преобразовать базовую программу GUI tkinter в .exe с помощью py2exe. Однако я столкнулся с ошибкой, используя следующий скрипт преобразования.Py2exe с Tkinter
# C:\Python26\test_hello_con.py py2exe
from distutils.core import setup
import py2exe
setup(windows=[r'C:\Python26\py2exe_test_tk.py'])
C: \ Python26 \ py2exe_test_tk.py является следующий код
import Tkinter as tk
root = tk.Tk()
root.title("Test")
label1 = tk.Label(root,text="Hello!",font=('arial', 10, 'bold'), bg='lightblue')
label1.pack(ipadx=100, ipady=100)
root.mainloop()
Это ошибка, я получаю, когда я пытаюсь запустить вновь созданный EXE-
Traceback (most recent call last):
File "py2exe_test_tk.py", line 4, in <module>
File "Tkinter.pyc", line 1643, in __init__
_tkinter.TclError: Can't find a usable init.tcl in the following directories:
{C:/Users/My_Name/lib/tcl8.5} {C:/Users/My_Name/lib/tcl8.5} C:/Users/lib/tcl8.5 {C:/Users/My_Name/library} C:/Users/library C:/Users/tcl8.5.8/library C:/tcl8.5.8/library
This probably means that Tcl wasn't installed properly.
I Я уверен, что это что-то в моем сценарии конверсии, что дает мне проблемы. Что я пропустил? Или у кого-то есть пример того, как будет выглядеть сценарий конверсии для GUI-программы tkinter? Также возможно ли переместить выходные .exe-файлы на мой рабочий стол?
EDIT:
Сообщение об ошибке говорит, что мне не хватает init.tcl из {C: /Users/My_name/lib/tcl8.5}. Поэтому я сделал этот каталог и поместил копию init.tcl. Теперь, когда я пытаюсь запустить .exe, он заявляет, что MSVCR90.dll отсутствует на моем компьютере и необходим для запуска моей программы.
Кроме того, это питон 2.6.5 на Windows, 7.
Я столкнулся с аналогичными проблемами как с py2exe для Python 2.6.4, так и cx_Freeze для Python 3.1.2 на Win7 64-бит. Я обнаружил, что подкаталоги tcl (tcl8.5 и tk8.5) не включаются в сгенерированный каталог dist. Я скопировал два каталога из моего Python26 \ tcl в dist \ tcl8.6 и dist \ tk8.5 соответственно, а двоичный файл с py2exe прекратил жаловаться на отсутствие tcl.I в конечном итоге переустановил py2exe, и проблема исчезла. Теперь, после установки смолы py2exe, теперь tcl-каталоги находятся под dist \ tcl \ tcl8.5 и dist \ tcl \ tk8.5. – JTP