2017-11-10 16 views
14

मैं वर्तमान में पायगम मॉड्यूल का उपयोग कर एक गेम बना रहा हूं। मैंने निम्नलिखित लिंक 'दिशानिर्देशों का पालन किया है। https://pythonprogramming.net/converting-pygame-executable-cx_freeze/cx_Freeze: "कोई मॉड्यूल नाम 'कोडेक्स' नहीं है" विंडोज 10

मैं Attribute Error while using cx_Freeze

setup.py के निर्माण किया गया है इस तरह के KeyError KeyError: 'TCL_Library' when I use cx_Freeze AttributeError के रूप में कुछ समस्याओं का समाधान कर लिया है, लेकिन जैसा कि मैंने खेल के exe फ़ाइल चलाते हैं, तो यह घातक अजगर त्रुटि के साथ दुर्घटनाओं : Py_Initialize: फाइल सिस्टम कोडेक लोड करने में असमर्थ

Fatal Python error: Py_Initialize: unable to load the file system codec 
Traceback (most recent call last): 
    File "C:\Users\jinju\AppData\Local\Programs\Python\Python35-32\lib\encodings\__init__.py", line 31, in <module> 
ImportError: No module named 'codecs' 

मैं लिनक्स कर्नेल (cx_Freeze: "No module named 'codecs'") में दिए पिछले प्रश्न पढ़ लिया है, लेकिन मुझे पता है कि मैं क्या साथ क्या करना चाहिए चाहते हैं मेरे विंडोज 10 कर्नेल।

मैं पाइथन होमपेज, cx_Freeze-5.1-cp35-cp35m-win32.whl के माध्यम से डाउनलोड पाइथन 3.5.3 का उपयोग पाइप के साथ whl डाउनलोड करके स्वचालित रूप से पाइप, पायगमे 1.9.3 के माध्यम से डाउनलोड किया जाता है।

setup.py फ़ाइल

import cx_Freeze, os 

executables = [cx_Freeze.Executable("quatris.py")] 

os.environ['TCL_LIBRARY'] = r'C:\Users\jinju\AppData\Local\Programs\Python\Python35-32\tcl\tcl8.6' 
os.environ['TK_LIBRARY'] = r'C:\Users\jinju\AppData\Local\Programs\Python\Python35-32\tcl\tk8.6' 

cx_Freeze.setup(
    name = "QUATRIS", 
    version = '1.0', 
    options={"build_exe": {"packages":["pygame"], "include_files":['ab_main.wav', 'ct_main.wav', 'f3_main.wav', 
                    'ff_main.wav', 'gta4_soviet.wav', 
                    'h3_neverforget.wav', 'h_onefinaleffort.wav', 
                    'm_sweden.wav', 'p1_stillalive.wav', 
                    'p2_caramiaaddio.wav', 'smb_1-up.wav', 
                    'smb_bump.wav', 'smb_coin.wav', 'smb_gameover.wav', 
                    'smb_mariodie.wav', 'smb_overworld.wav', 
                    'smb_pause.wav', 'tes4o_main.wav', 
                    'tes5s_dragonborn.wav', 'tes5s_farhorizons.wav', 
                    'tetris.wav', 'tloz_intro.wav', 'tw3wh_main.wav']}}, 
    executables = executables) 

मैं init .py फ़ाइल और codecs.py फ़ाइल को देखने की कोशिश की। जब मैं कोडेक्स आयात करने का प्रयास करता हूं,

module 'codecs' has no attribute 'register' 

यह बात आती है।

# Register the search_function in the Python codec registry 
codecs.register(search_function) 

यह हिस्सा जहां त्रुटि init .py फ़ाइल में होता है।

+0

आपका quatris.py यह त्रुटियों के बिना चलाता है नहीं करता है? – Simon

उत्तर

3

एक साधारण दृष्टिकोण लेकिन सुरुचिपूर्ण नहीं अपने कोड में

if not True: 
    import codecs 

कहीं जगह हो सकता है।

+0

setup.py के अंदर आपका मतलब है? –

+0

@MinhaArmadaJu नहीं, कहीं आपके सामान्य पायथन कोड में। –

+0

मैंने आपके कोड को अपने main.py कोड में चिपकाया और गेम को फिर से बनाया, लेकिन त्रुटि अभी भी वहां है। –

5

यह cx_Freeze में एक बग जो अब सही किया गया है था: https://github.com/anthony-tuininga/cx_Freeze/commit/9c98492911d4c75587d3687206d11812b48bf144

+0

मैंने अभी 'पाइप इंस्टॉल cx_Freeze --upgrade' (v5.1) के माध्यम से स्थापित किया है और मुझे एक ही समस्या है। जब मैं .exe फ़ाइल को चलाने का प्रयास करता हूं तो यह एक ही त्रुटि के साथ दुर्घटनाग्रस्त हो जाता है, 'कोडेक्स' नामक कोई मॉड्यूल नहीं। मेरी पायथन फ़ाइल के शीर्ष पर 'आयात कोडेक' जोड़ना कोई प्रभाव नहीं पड़ा। मैं एक amd64 cpu के साथ विंडोज़ पर पायथन 3.6.1 का उपयोग कर रहा हूँ। – pheeper

+0

हां, जब तक मैं संस्करण 5.1.1 जारी नहीं करता तब तक आपको स्रोत से निर्माण करना होगा! –

+0

आह, उसे याद किया होगा, – pheeper

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