簡體   English   中英

ImportError:沒有名為__main__的模塊(Python 2.7和Pickle)

[英]ImportError: No module named __main__ (Python 2.7 & Pickle)

因此,在我正在制作的游戲中,我試圖加載游戲所需的數據文件,並且當我用pickle加載文件時(文件已加載,我已經仔細檢查過。)錯誤:

Traceback (most recent call last):
  File "/Users/user/Downloads/Deeper-master/Deeper.py", line 257, in <module>
    tutorialData = pickle.load(tutorialFile)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1384, in load
    return Unpickler(file).load()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 864, in load
    dispatch[key](self)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1075, in load_inst
    klass = self.find_class(module, name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1130, in find_class
    __import__(module)
ImportError: No module named __main__

我在Stack Overflow上看到了這樣的問題,但這與我的情況有些不同,所以很抱歉,如果這是重復的,我只是想弄清楚。

您可以在這里找到我的代碼。 主要腳本是Deeper.py,只是為了節省時間。

如果您在回購中注意到,則有一個Deeper.pycDeeper.py 如果我運行Deeper.py ,它將引發與您相同的異常。 如果我運行Deeper.pyc ,它將引發另一個異常:

Traceback (most recent call last):
  File "Deeper.py", line 7, in <module>
    ToolbarTile = pygame.image.load("ToolbarTile.png")
pygame.error: Couldn't open Toolbar Tile.png

因此,代碼(字節碼,某些以前的版本)引用了ToolbarTile.png ,但有關Toolbar Tile.png (帶空格)的例外。 因此,我更改了文件名以解決此問題。

現在它提出了:

Traceback (most recent call last):
  File "Deeper.py", line 766, in <module>
    else:
  File "Deeper.py", line 394, in __init__
    def displayCraft(self):
pygame.error: Couldn't open options.png

您的文件中有一個Options.png ,但它會查找options.png (小寫)(即使您在Deeper.py中的新代碼也會查找該文件)。 所以我改變了。

現在可以使用,盡管與Deeper.pyc一起Deeper.pyc所以這一定是您認為的原因:

(文件已加載,我已經仔細檢查過。)

也許刪除Deeper.pyc並執行git-bisect來查看何時引入該錯誤(ps:檢查您的toolbar.dat,對您來說還好嗎?還請檢查您使用pickle.load的方式。也許您應該使用rb代替r ?)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM