嗨,我有两个非常简单的程序,正在两台计算机上运行。一节课的泡菜和松饼。在
在一台计算机上(使用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中定义的。在
问题是由于行结束。通常,当您签入文件时,GIT会自动将行尾从Windows格式转换为Linux格式。但是,使用默认配置时,它无法对pickle文件执行此操作,因此当您在Windows机器上读取它时,它无法正确识别行结尾。在
一旦将行尾转换为操作系统的适当格式,pickle将正确加载。在
我不知道为什么Python报告“ImportError:No module named
__main__
”为错误,因为这非常令人困惑。在相关问题 更多 >
编程相关推荐