2015-10-23 7 views
10

Mac OSX Yosemite 10.10.1 एनाकोंडा वितरण से और Tcl 8.5 साथ Python 3.4 चलाने पर साथ विफल रहता है।py2app ठीक बनाता है लेकिन एप्लिकेशन "_tkinter.TclError" (और कोई त्रुटि संदेश!) मैं <code>py2app 0.9</code> उपयोग कर रहा हूँ

पहले प्रयास में, निर्माण विफल हो जाएगा, लेकिन त्वरित खोज इन समस्याओं के समाधान से पता चला (यानी सहित 'संकुल': setup.py में विकल्प में ['tkinter', 'matplotlib'], और की MachOGraph.py लाइन 49 बदल रहा है: लोडर -> loader_path)

अब py2app निर्माण पूर्ण होने पर, और उर्फ ​​मोड में मेरे ऐप कार्यों चल रहा है, लेकिन जब मैं सामान्य मोड (अजगर setup.pypy2app) में निर्माण परिणामी एप्लिकेशन नहीं खुलेगा और सांत्वना निम्नलिखित ट्रैसबैक पता चलता है:

Traceback (मीटर ost हाल का कॉल पिछले): फ़ाइल "/Users/ryankeenan/Desktop/fishing/gui_test/dist/deani.app/Contents/Resources/ बूट .py", लाइन 355, _run में() फ़ाइल "/ उपयोगकर्ता /ryankeenan/Desktop/fishing/gui_test/dist/deani.app/Contents/Resources/ बूट .py ", लाइन 336, _run कार्यकारी (संकलन (स्रोत, रास्ते में, 'कार्यकारी'), वैश्विक(), ग्लोबल्स()) फ़ाइल "/Users/ryankeenan/Desktop/fishing/gui_test/dist/deani.app/Contents/Resources/deani.py", लाइन 731, ऐप = फिशिंगएप() फ़ाइल "/ उपयोगकर्ता/ryankeenan /Desktop/fishing/gui_test/dist/deani.app/Contents/Resources/deani.py ", लाइन 536, init टीके। टीके init (स्वयं, * args, ** kwargs) फ़ाइल "/Users/ryankeenan/Desktop/fishing/gui_test/dist/deani.app/Contents/Resources/lib/python3.4/tkinter/ init .py ", लाइन 1851, init में self.tk = _tkinter.create (screenname, basename, className, इंटरैक्टिव, wantobjects, useTk, सिंक, उपयोग) _tkinter.TclError

निराशा होती बात यह है कि है यह "_tkinter.TclError" के लिए कोई त्रुटि संदेश मुद्रित नहीं करता है। मैंने काफी खोज की है और इस समस्या के किसी भी समाधान या प्रतिकृतियों को खोजने में विफल रहा है। मैंने विभिन्न tkinter आधारित ऐप्स बनाने की कोशिश की है और वे सभी एक ही तरह से असफल हो जाते हैं।

यह टीके.के. के पहले कॉल पर होता है। मेरे कोड में init (स्वयं, * args, ** kwargs)।

मेरे setup.py फ़ाइल इस तरह दिखता है:

from setuptools import setup 
APP = ['deani.py'] 
DATA_FILES = [] 
OPTIONS = {'packages': ['tkinter','matplotlib'],'argv_emulation': True} 
setup( 
    app=APP, 
    data_files=DATA_FILES, 
    options={'py2app': OPTIONS},  
    setup_requires=['py2app'],) 

उत्तर

0

मैं इस समस्या हो रही थी और कहा कि यह /Library/Frameworks में tcl/टी के परस्पर विरोधी संस्करणों के कारण था। टीसीएल/टीके के विभिन्न संस्करणों के संदर्भों के लिए निर्माण के आउटपुट की जांच करें (पहले पुराने निर्माण को हटाना सुनिश्चित करें)। मैंने पाया कि मेरा वर्तमान संस्करण टीसीएल/टीके 8.6 था जो py2app लिंक कर रहा था, लेकिन साथ ही py2app tcl/tk 8.5 से फ़ाइलों की प्रतिलिपि बना रहा था। मैंने `/Library/Frameworks/(Tcl/Tk).framework/Versions से 8.5 को हटाकर समस्या हल की।

नोट: मैं एक संस्करण को हटाने की अनुशंसा नहीं करता जब तक कि आप बिल्ड आउटपुट में समस्या नहीं देखते हैं और जानते हैं कि कुछ भी नहीं (जिसे आप परवाह करते हैं) उस संस्करण पर निर्भर करता है।

हालांकि, यह मेरी एकमात्र त्रुटि नहीं थी, क्योंकि जब मैंने पुराने संस्करण को हटा दिया, तो मुझे एक नया _tkinter.Tcl त्रुटि मिली, जिसने मेरे कोड में एक बग की ओर इशारा किया। यदि आप कंसोल पर जाने के बिना ट्रेसबैक देखना चाहते हैं, तो मैं आपके शुरुआती कोड के आस-पास एक कोशिश/छोड़ने का बयान देना चाहता हूं जो फ़ाइल में ट्रेसबैक प्रिंट करता है। उदाहरण के लिए:

 import sys, time, traceback  
     try: 
      run()#Your opening code goes here 
     except: 
      with open('/Path/to/somewhere/tb.txt','a') as file: 
       y,mn,d,h,m,s,a,b,c = time.localtime() 
       file.write("==================="+str(mn)+'/'+str(d)+' '+ 
          str(h)+':'+str(m)+':'+str(s)+ 
          "=====================\n") 
       traceback.print_exc(file=file) 

आशा है कि इससे मदद मिलेगी।

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