Python pickle:ImportError:没有名为\uu main的模块__

2024-06-09 21:23:15 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有两个非常简单的程序,正在两台计算机上运行。一节课的泡菜和松饼。在

在一台计算机上(使用Linux):

import cPickle

# Define class
class test():
    def __init__():
        self.foo = 1

# Initialise and pickle class
bar = test()
with open("test.pkl", "wb") as file_:
    cPickle.dump(bar, file_, protocol=0)

在第二台计算机上(使用Windows):

^{pr2}$

但我得到一个错误:

ImportError: No module named __main__

一台机器使用windows,另一台使用Linux,脚本和pickle通过GIT(版本控制系统)传输。我不明白为什么会发生这种情况,因为类在两个脚本中都是直接在main中定义的。在


Tags: testimport程序脚本mainlinux计算机bar
1条回答
网友
1楼 · 发布于 2024-06-09 21:23:15

问题是由于行结束。通常,当您签入文件时,GIT会自动将行尾从Windows格式转换为Linux格式。但是,使用默认配置时,它无法对pickle文件执行此操作,因此当您在Windows机器上读取它时,它无法正确识别行结尾。在

一旦将行尾转换为操作系统的适当格式,pickle将正确加载。在

我不知道为什么Python报告“ImportError:No module named__main__”为错误,因为这非常令人困惑。在

相关问题 更多 >