मैजिक नंबर UNIX- प्रकार सिस्टम से आता है, जहाँ फ़ाइल के पहले कुछ बाइट्स में एक मार्कर होता है जो फ़ाइल प्रकार को दर्शाता है।
पायथन अपनी pycफ़ाइलों में एक समान मार्कर डालता है जब यह उन्हें बनाता है।
फिर अजगर इंटरप्रेटर यह सुनिश्चित करता है कि इसे लोड करते समय यह संख्या सही है।
जो भी इस मैजिक नंबर को नुकसान पहुंचाएगा वह आपकी समस्या का कारण बनेगा। इसमें pycफ़ाइल को संपादित करना या pycआपके दुभाषिया की तुलना में अजगर के एक अलग संस्करण (आमतौर पर बाद में) से चलाने की कोशिश करना शामिल है ।
यदि वे आपकी pyc फ़ाइलें हैं, तो उन्हें हटा दें और दुभाषिया pyफ़ाइलों को फिर से संकलित करने दें। UNIX प्रकार सिस्टम पर, यह कुछ सरल हो सकता है:
rm *.pyc
या:
find . -name '*.pyc' -delete
यदि वे आपके नहीं हैं, तो आपको या तो pyपुनः संकलन के लिए फाइलें प्राप्त करनी होंगी, या एक दुभाषिया जो pycउस विशेष जादू मान के साथ फाइल चला सकता है ।
एक बात जो आंतरायिक प्रकृति का कारण हो सकती है। pycजिससे समस्या हो रही केवल विशेष परिस्थितियों में आयात किया जा सकता है। इसकी अत्यधिक संभावना है कि यह कभी-कभी आयात करेगा। आयात विफल होने पर आपको वास्तविक पूर्ण स्टैक ट्रेस की जांच करनी चाहिए?
एक तरफ के रूप में, मेरी सभी 2.5.1(r251:54863) pycफाइलों का पहला शब्द है 62131, 2.6.1(r261:67517)है 62161। सभी मैजिक नंबरों की सूची Python/import.cपूर्णता के लिए यहां पुन: प्रस्तुत की जा सकती है (वर्तमान में जिस समय उत्तर पोस्ट किया गया था, तब से यह परिवर्तित हो सकता है):
1.5: 20121
1.5.1: 20121
1.5.2: 20121
1.6: 50428
2.0: 50823
2.0.1: 50823
2.1: 60202
2.1.1: 60202
2.1.2: 60202
2.2: 60717
2.3a0: 62011
2.3a0: 62021
2.3a0: 62011
2.4a0: 62041
2.4a3: 62051
2.4b1: 62061
2.5a0: 62071
2.5a0: 62081
2.5a0: 62091
2.5a0: 62092
2.5b3: 62101
2.5b3: 62111
2.5c1: 62121
2.5c2: 62131
2.6a0: 62151
2.6a1: 62161
2.7a0: 62171