2010-11-05 8 views
1

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

# 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.

+1

Это точный дубликат http://stackoverflow.com/questions/3964427/py2exe-with-tkinter –

ответ

0

Такие ошибки в Unix мире, как правило, из-за неправильных настроек PATH или/и неправильно установленных сторонних модулей (в GUI те, которые вы используете). Вы видели этот пост: py2exe fails to generate an executable?

+0

Нет, я этого не делал, но я, конечно, хорошо посмотрю на него. – rectangletangle