2010-02-08 46 views
5

Tôi đang thử tạo một tệp thực thi cho Windows cho ứng dụng GUI trong tkinter bằng mô-đun ttk. Tôi đã thực hiện một exe với cx_freeze, nhưng khi tôi chạy các ứng dụng trong giao diện điều khiển nó mang lại cho tôi những lỗi sau:cx_Freeze ImportError: không thể nhập tên

D:\My Dropbox\python\SAR Calculator\src\dist_tk> 
Traceback (most recent call last): 

    File "C:\Python31\lib\site-packages\cx_Freeze\ 
7, in <module> 

    exec(code, m.__dict__) 

    File "sarcalc_tk.py", line 14, in <module> 

    File "C:\Python31\lib\tkinter\__init__.py", li 

    from tkinter import _fix 

ImportError: cannot import name _fix 

Dưới đây là dòng 14 và 15 từ mã của tôi:

import tkinter as tk 
import tkinter.ttk as ttk 

Trả lời

5

Hình như cx_freeze không nhận ra nó phải bao gồm mô-đun tkinter._fix, được nhập theo điều kiện bởi tkinter/__init__.py. Bạn có thể nói nó bao gồm mô-đun đó một cách rõ ràng với các đối số --include-modules dòng lệnh, hoặc lập luận includes từ khóa để cx_Freeze.Executable trong bạn setup.py

+0

nhờ nhưng bây giờ tôi có một lỗi với init.tcl, tôi giải quyết manualy này includig tcl8.5 và thư mục tk8.5 trong thư mục dist, nhưng tôi nghĩ đó không phải là giải pháp tốt nhất. – Alquimista

+0

Đó là đúng, đóng băng nói chung không phải là giải pháp tốt nhất :) Các ứng dụng đóng băng (py2exe, cx_Freeze, py2app, vv) cần phải biết chính xác những gì để đóng gói lên. Tất cả họ đều cố gắng đoán những mô-đun Python cần bao gồm, nhưng như bạn đã thấy họ đôi khi thất bại. Phụ thuộc vào các tệp khác không thể được xử lý tự động, vì vậy chúng luôn có vấn đề. –

Các vấn đề liên quan