Django启动报错:EOFError: marshal data too short 解决方法#
原因
*.pyc
文件异常导致。*.pyc
文件是脚本的编译字节代码,当Python脚本运行启动时,它会动态创建,由于某种原因它不再与原始脚本匹配,所以报错。
解决方法
找到报错的__pycache__
文件删除即可正常启动。通过在config.py
文件中打断点,定位具体报错的module
,将对应文件中的__pycache__
删除。
def import_models(self):
# Dictionary of models for this app, primarily maintained in the
# 'all_models' attribute of the Apps this AppConfig is attached to.
self.models = self.apps.all_models[self.label]
if module_has_submodule(self.module, MODELS_MODULE_NAME):
断点--> models_module_name = '%s.%s' % (self.name, MODELS_MODULE_NAME)
self.models_module = import_module(models_module_name)
参考资料
2.https://stackoverflow.com/questions/50391941/eoferror-marshal-data-too-short