หมายเลขเวทย์มนตร์นั้นมาจากระบบประเภท UNIX ซึ่งสองสามไบต์แรกของไฟล์ที่มีเครื่องหมายระบุประเภทของไฟล์
Python ใส่เครื่องหมายที่คล้ายกันลงใน 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