2011-05-17 12 views
7

Bir Python 3 komut dosyası çalıştırırken, "Bozuk bir sihirli sayı" hatasıyla karşılaşıyorum (komut dosyası başka bir modülü almaya çalışırken). İlk başta, Python 2 tarafından oluşturulan .pyc dosyaları olduğu için hayal ettim. __pycache__ dizinini sildim ve betiği yeniden yazdım, ancak yorumlayıcı bu modülü içe aktarırken hala bana aynı hatayı veriyor. Herhangi bir fikir?Hatalı bir sihirbaz numarası hatası .pyc dosyasının yeniden oluşturulmasından sonra da devam ediyor.

GÜNCELLEME: Açıklamak gerekirse, komut dosyasındaki içe aktarma ifadesinin hatanın kendi başına neden olmadığından bahsetmeliyim. İşte yığın izleme:

Traceback (most recent call last): 
    File "../mvc/test.py", line 6, in <module> 
    from property import Property 
    File "/home/mostafa/python/mvc/property.py", line 1, in <module> 
    from owned import owned 
    File "/home/mostafa/python/owned/__init__.py", line 1, in <module> 
    from list import OwnedList 
ImportError: Bad magic number in /home/mostafa/python/list.pyc 
+0

Sizinkiyle benzer bir soru: http://stackoverflow.com/questions/514371/whats-the-bad-magic-number-error. Modülünüzü başka bir modüle veya __builtins'e bağlı olmadığınızı kontrol ettiniz mi? – Vijay

+0

Bu soruyu kontrol ettim. Komut dosyamda yalnızca iki tane içe aktarma var: biri sys (diğer içe aktarmadan önce yerleştirildiği için iyi çalışıyor), diğeri de hataya neden olan diğer modül. – Elektito

+0

Belki de python -v script.py'yi çalıştırmayı deneyin. '-v 'bayrağı, modüller yüklendikçe tüm ithalatların pythonun yazdırılmasına neden olur. Bu, sorunun nerede meydana geldiği hakkında bir ipucu verebilir. – unutbu

cevap

12

yığın izlemesi son satırı hataya neden pyc dosyanın yolunu gösterir:

ImportError: Bad magic number in /home/mostafa/python/list.pyc 

Eğer PYTHONPATH içinde list.py var varsayarsak, /home/mostafa/python/list.pyc silebilirsiniz. list'u içe aktardığınızda, Python3, list.py temel alınarak list.pyc'un yeni bir sürümünü oluşturur.

İlgili konular