2011-05-17 65 views
7

运行我的Python 3脚本时,遇到“错误的幻数”错误(脚本尝试导入另一个模块时)。起初我想象这是因为有Python 2创建的.pyc文件。我删除了__pycache__目录并重新创建脚本,但是解释器在导入该模块时仍然给我提供了相同的错误。有任何想法吗?即使重建.pyc文件后仍然存在错误的幻数错误

更新:为了澄清,我应该提到脚本中的import语句本身不会导致错误。这里的堆栈跟踪:

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

与您的类似问题:http://stackoverflow.com/questions/514371/whats-the-bad-magic-number-error。你有没有检查确保你的模块导入不依赖于任何其他模块或__builtins__? – Vijay 2011-05-17 17:29:33

+0

我确实检查了这个问题。我的脚本只有两个导入:一个是sys(工作正常,因为它放在另一个导入之前),另一个是导致错误的其他模块。 – Elektito 2011-05-17 17:33:24

+0

也许试试运行'python -v script.py'。 '-v'标志将导致python在模块加载时打印出所有的导入。这可能会提供有关问题发生位置的线索。 – unutbu 2011-05-17 17:37:38

回答

12

堆栈跟踪的最后一行显示的pyc文件导致了错误的路径:

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

假设你在你的PYTHONPATH有list.py,你可以删除/home/mostafa/python/list.pyc。当您导入list时,Python3将基于list.py生成新版本list.pyc

相关问题