2017-02-14 29 views
14

मैं पाइथन 3.3.3 का उपयोग कर रहा हूं और मैं एक साधारण .py स्क्रिप्ट से .exe बनाने का प्रयास कर रहा हूं।पायथन, पायइंस्टॉलर त्रुटि: "एनकोडिंग" नामक कोई मॉड्यूल और सिस्टम कोडेक

मेरे स्क्रिप्ट इस तरह दिखता है:

import encodings 

print('Test') 

और सही ढंग से निष्पादित करता है।

जब मैं इस आदेश के साथ PyInstaller के साथ बनाने की कोशिश:

pyinstaller --onefile Testmodul.py

और मेरे .exe खोलने के लिए यह इस त्रुटि के साथ दिखाता है कोशिश: Fatal Python error: Py_Initialize: unable to load the file system codec, ImportError: No module named 'encodings'

मैं पहले से ही आयात करने की कोशिश की मेरे testcript में 'एन्कोडिंग' मॉड्यूल लेकिन यह अभी भी काम नहीं कर रहा है, मैंने py2exe भी कोशिश की है और यह भी बिल्कुल काम नहीं कर रहा है।

क्या कुछ भी गलत है? क्या मुझे अपने पथ में कुछ स्थापित करना है? "सी: \ पायथन 33" का सही पथ पहले से ही इसमें शामिल है।

संपादित करें: इस समस्या के साथ सभी को: मैंने छोड़ दिया, और विंडोज़ और पायथन और अन्य सभी चीजों के एक नए इंस्टॉलेशन के बाद, मैंने इसे फिर से कोशिश की, जैसा कि पहले और यह किसी समस्या के बिना काम करता था .. यह यदि आप वास्तव में हताश हैं तो कोशिश करने लायक है!

+0

क्या आपको कोई विचार है कि 'आपका एसईएस एन्कोडिंग डेटा कहां है', पायथन 'एन्कोडिंग' कैसे काम करें? सार्वजनिक उपयोग में सभी ओएस विवरण? 'पंजीकृत नहीं' मतलब शुरू करें। यह प्रश्न आपके 'पायथन सूचना स्तर' से संबंधित है। तो एक चाल: निष्क्रिय कोड पर यह कोड काम करता है और अधिक सेवा/कक्षा पर बहुत अधिक अनुमतियां और पंजीकृत (गैर सार्वजनिक) प्रदान करता है। किस शैली के लिए 'स्थायी/अस्थायी' शुरू करें? – dsgdfg

+0

हां, मुझे पता है कि यह कम_लेवल टिप्पणी नहीं है! – dsgdfg

+0

http://stackoverflow.com/questions/5694706/py-initialize-fails-unable-to-load-the-file-system-codec –

उत्तर

2

ऐसा शायद इसलिए है क्योंकि pyinstaller में मॉड्यूल को पहले स्थान में शामिल नहीं किया गया था। आप 2 समाधानों का प्रयास कर सकते हैं।

1) संकलन के दौरान अपने मॉड्यूल के लिए पथ निर्दिष्ट करें:

  • pyinstaller --onefile --paths =/path/to/मॉड्यूल Testscript.py

2) से पथ निर्दिष्ट करें .spec फ़ाइल:

  • रन इस आदेश पहले (pyinstaller की निर्देशिका में):

    python Makespec.py --onefile /path/to/yourscript.py 
    
  • अब आपके पास .spec फ़ाइल है। इसे अपने टेक्स्ट एडिटर में खोलें, और पेटीक्स में अपने मॉड्यूल में पथ जोड़ें।

    python Build.py /path/to/yourscript.spec 
    

3) का उपयोग करें छिपा आयात:

  • pyinstaller --onefile --hidden आयात = modulename Testscript.py

    pathex=['C:\\path\\to\\module'] 
    
  • तो, अपने कार्यक्रम का निर्माण

  • आप .spec फ़ाइल में छिपे हुए आयात को भी निर्दिष्ट कर सकते हैं।हुक फ़ाइल में एन्कोडिंग मॉड्यूल इकट्ठा करने के लिए कोड की पंक्ति निम्न नाम hook-encodings.py को C:\Python\Lib\site-packages\PyInstaller\hooks स्थान के साथ
+0

का डुप्लिकेट या आप (किसी भी निर्देशिका से अगर आपके पासवर्ड में पाइंस्टॉलर है) चला सकता है "pyinstaller /path/to/your.spec" – Back2Basics

0

मदद कर सकता है आप किस विंडोज संस्करण का उपयोग कर रहे हैं (7 या 10)?

यह समस्या, आपको पहले व्यवस्थापक विशेषाधिकार के साथ अपने exe ​​ फ़ाइल को चलाने की कोशिश कर सकते हैं, और यदि इसे फिर से failling है, चलाने के लिए "की कोशिश उपयोगकर्ता विशेषाधिकार के सापेक्ष होने के लिए ... और यह this issue के समान है यह सोचते हैं लगता है Pyinstaller "cmd.exe से व्यवस्थापक अधिकार के साथ चल रहा है।

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