2010-02-08 24 views
5

मैं टीटीके मॉड्यूल का उपयोग कर tkinter में एक जीयूआई अनुप्रयोग के लिए विंडोज के लिए एक निष्पादन योग्य बनाने की कोशिश कर रहा हूं। मैं cx_freeze के साथ एक exe बनाया है, लेकिन जब मैं कंसोल में अनुप्रयोग चलाने यह मुझे निम्न त्रुटि देता है:cx_Freeze आयात त्रुटि: नाम आयात नहीं कर सकता

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 
मेरे कोड से

यहाँ लाइनों 14 कर रहे हैं और 15:

import tkinter as tk 
import tkinter.ttk as ttk 

उत्तर

5

cx_freeze तरह लग रहा है यह नहीं पता कि इसमें tkinter._fix मॉड्यूल शामिल होना चाहिए, जिसे सशर्त रूप से tkinter/__init__.py द्वारा आयात किया जाता है। आप इसे बता सकते हैं अपने setup.py

+0

धन्यवाद में स्पष्ट रूप से --include-modules कमांड लाइन तर्क के साथ कि मॉड्यूल, या cx_Freeze.Executable को includes कीवर्ड तर्क शामिल करने के लिए लेकिन अब मैं init.tcl के साथ एक त्रुटि है, मैं इस manualy tcl8.5 includig का समाधान और dist फ़ोल्डर में tk8.5 फ़ोल्डर, लेकिन मुझे लगता है कि सबसे अच्छा समाधान नहीं है। – Alquimista

+0

यह सही है, सामान्य रूप से ठंडा करना सबसे अच्छा समाधान नहीं है :) फ्रीजिंग ऐप (py2exe, cx_Freeze, py2app, आदि) को पता होना चाहिए कि वास्तव में क्या पैकेज करना है। वे सभी अनुमान लगाने का प्रयास करते हैं कि कौन से पायथन मॉड्यूल की आवश्यकता है, लेकिन जैसा कि आपने देखा है कि वे कभी-कभी असफल होते हैं। अन्य फ़ाइलों पर निर्भरताओं को स्वचालित रूप से संभाला नहीं जा सकता है, इसलिए वे हमेशा समस्याग्रस्त होते हैं। –

संबंधित मुद्दे