2016-05-08 14 views
5

मैंने एक पायथन (2.7) ऐप बनाया है जो टिंकर का उपयोग करता है और मैं windows7er (3.2) का उपयोग कर Windows7 .exe बनाने की कोशिश कर रहा हूं। ऐप के कार्य खिड़कियों में मिल रहा python myapp.py रूप में चलाते हैं, लेकिन एक बार एक pyinstaller वितरण में संकलित किया है, मैं इस त्रुटि संदेश मिलता है:पायइंस्टॉलर और टिंकर

ImportError: No module named Tkinter 

बस सुनिश्चित करने के लिए, myapp.py के शीर्ष में शामिल हैं:

from copy import deepcopy 
import cPickle as pickle 
import Tkinter as tk 
from PIL import ImageTk 

वितरण निर्देशिका जाँच हो रही है, मैं tk85.dll, tcl85.dll और दो निर्देशिकाओं कि उचित देख देखते हैं, tcl/और टी/

मैं ऐसे matplotlib जो आयात के रूप में माध्यमिक Tkinter निर्भरता के लिए कई संदर्भ, मिल गया है Tkinter itslef, लेकिन मैंने नहीं किया है इस तरह की प्रत्यक्ष निर्भरता का कोई विवरण मिला।

कोई विचार यह कैसे काम कर रहा है?

+0

मैंने एक पाइथन स्क्रिप्ट को exe में परिवर्तित कर दिया लेकिन PyInstaller समस्याओं को हल करने में पाया। इसके बजाय Cx_Freeze का उपयोग करके इसे करने का प्रयास करें। यह परेशानी मुक्त है और एक आकर्षण की तरह काम करता है। – AR06

+0

उसे नहीं पता। मैं इसे करने की कोशिश करता हूं और एक बार वापस रिपोर्ट करता हूं। – KirkDCO

+0

मैंने cx_Freeze को आज़मा दिया और मैं बहुत करीब हूं। मुझे कुछ पैकेज त्रुटियों से बचने के लिए कुछ बहिष्कारों में फेंकना पड़ा। अब, हालांकि, मैं एक फ़ॉन्ट समस्या से फंस गया हूँ। मेरे द्वारा उपयोग किए जा रहे पैकेजों में से एक भी पिल्लो और कुछ पीआईएल फोंट का उपयोग करता है। मुझे पता चला है कि फोंट पैकेज के लिए कहां संग्रहीत किए जाते हैं, लेकिन वे यह जानने के लिए चीजों को स्थापित नहीं कर सकते हैं कि वे वहां हैं। मैंने उन्हें सीधे निर्माण/exe निर्देशिका में कॉपी किया, लेकिन कोई भाग्य नहीं। मैं डेटा फ़ाइलों को शामिल करने के बारे में cx_Freeze दस्तावेज़ों में अनुभाग भी देखता हूं, लेकिन मुझे यकीन नहीं है कि यह कार्य कैसे करें। – KirkDCO

उत्तर

0

क्या आपने जांच की है: https://github.com/pyinstaller/pyinstaller/issues/1877 (या अन्य समस्याएं)? https://github.com/pyinstaller/pyinstaller/wiki/If-Things-Go-Wrong

समस्या 1877 से उद्धरण "ऐसा लगता है कि हुक-_tkinter.py कस्टम संकलित रुपये को संभालने में सक्षम नहीं है।" संभावित समाधान: "धन्यवाद, के बाद स्थापित tkinter, tix, tcl-devel और TK-devel यम स्थापना का उपयोग, अब यह ठीक से काम कर रहा है।"

अन्यथा, Py2exe भी एक exe फ़ाइल बनाने के लिए एक विकल्प है, और मैं बिना किसी समस्या के टिंकर के साथ इसे कई बार इस्तेमाल किया है।

+0

मैंने इसे नहीं देखा है। मैं कस्टम निर्माण का उपयोग नहीं कर रहा हूं, लेकिन मैं अतिरिक्त पैकेज स्थापित करने का प्रयास करूंगा। मैं इसे आज़मा दूंगा और यहां रिपोर्ट करें – KirkDCO

+0

दुर्भाग्यवश, मुझे पता चला है कि मेरे पास पहले से ही उन सभी संकुल स्थापित हैं। – KirkDCO

+0

मैंने py2exe भी कोशिश की, और पाया कि मुझे कुछ डीएलएल को शामिल करना था (numpy-atlas.dll और MSVCP90.dll)। एक बार संकलित हो जाने पर, यह कई लॉग प्रविष्टियों के साथ विफल रहता है, "आयात त्रुटि: numpy.core.multiarray आयात करने में विफल रहा" मैंने इसके समाधान की खोज की है लेकिन कोई समाधान नहीं मिला है। – KirkDCO

2

https://github.com/pyinstaller/pyinstaller/issues/1584 देखें। पीआईएल हुक के साथ एक मुद्दा है, जिसमें टिंकर मॉड्यूल शामिल नहीं है।

एक समाधान \ PyInstaller excludedimports से modname_tkinter को हटाने के द्वारा \ हुक हुक फ़ाइल YourPythonFolder \ लिब \ साइट-संकुल में स्थित hook-PIL.py संशोधित करने के लिए है।

या बस अपने कोड में आयात विवरणों का क्रम बदलें। करें:

from PIL import ImageTk 
import Tkinter as tk 
+0

अच्छा समाधान। ध्यान दें कि आयात के क्रम को बदलना 'टिंकर आयात * से' का उपयोग नहीं करता है, लेकिन इसे ऊपर किए गए अनुसार आसानी से हल किया जा सकता है। – tfv

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