【问题标题】:EOFError: marshal data too shortEOFError:封送数据太短
【发布时间】:2018-05-17 12:51:08
【问题描述】:

为什么我在运行 django 服务器时会出现以下错误,我该如何解决? :

EOFError: marshal data too short

详情

Performing system checks...

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f6e5dbacea0>
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/django/utils/autoreload.py", line 227, in wrapper
    fn(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/django/core/management/commands/runserver.py", line 125, in inner_run
    self.check(display_num_errors=True)
  File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 359, in check
    include_deployment_checks=include_deployment_checks,
  File "/usr/local/lib/python3.5/dist-packages/django/core/management/base.py", line 346, in _run_checks
    return checks.run_checks(**kwargs)
  File "/usr/local/lib/python3.5/dist-packages/django/core/checks/registry.py", line 81, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/usr/local/lib/python3.5/dist-packages/django/core/checks/urls.py", line 16, in check_url_config
    return check_resolver(resolver)
  File "/usr/local/lib/python3.5/dist-packages/django/core/checks/urls.py", line 26, in check_resolver
    return check_method()
  File "/usr/local/lib/python3.5/dist-packages/django/urls/resolvers.py", line 254, in check
    for pattern in self.url_patterns:
  File "/usr/local/lib/python3.5/dist-packages/django/utils/functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.5/dist-packages/django/urls/resolvers.py", line 405, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/usr/local/lib/python3.5/dist-packages/django/utils/functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.5/dist-packages/django/urls/resolvers.py", line 398, in urlconf_module
    return import_module(self.urlconf_name)
  File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/home/aphya1/work/1-erp-project/ERP/mis/mis/urls.py", line 14, in <module>
    url(r'^hr/', include('hr.urls', namespace='hr')),
  File "/usr/local/lib/python3.5/dist-packages/django/conf/urls/__init__.py", line 50, in include
    urlconf_module = import_module(urlconf_module)
  File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/home/aphya1/work/1-erp-project/ERP/mis/hr/urls.py", line 2, in <module>
    from hr import views
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 661, in exec_module
  File "<frozen importlib._bootstrap_external>", line 765, in get_code
  File "<frozen importlib._bootstrap_external>", line 476, in _compile_bytecode
EOFError: marshal data too short

【问题讨论】:

  • 因为Python不能处理marshal数据,所以太短了。提供更多元帅数据:)。
  • 但现在很讽刺:您需要提供更多上下文。代码的哪一部分是这样做的?
  • 似乎与损坏的.pyc 文件有关
  • 我遇到了同样的错误。就我而言,感谢@sshashank124 的评论,我可以通过删除主程序目录的__pychache__ 和导入的包来解决这个问题。你可以通过find 命令找到__pycache__,如下所示:$ find /usr/local/lib/python3.5/dist-packages/ -name __pycache__ | grep django/utils 左右。

标签: python django python-3.x


【解决方案1】:

我也遇到了错误:

EOFError:封送数据太短。

即使没有对任何现有文件进行任何更改,也会引发此错误。

一些 *.pyc 文件是自动创建的,它们是脚本的编译字节码,在 Python 脚本运行时动态创建以加快未来的启动速度。

我正在使用 Oracle VM VirtualBox 管理器,在 Python 上工作。

我试图安装pyspark。 spark文件夹结构是这样的

spark****/python/pyspark 

在此文件夹下包含一个名为“__pycache__”的文件夹 我去了pyspark文件夹并使用命令删除了'__pycache__'文件夹:

rm -r __pycache__/

这消除了我的错误,我现在可以导入 pyspark。

希望这会有所帮助。

【讨论】:

  • 但是有人知道为什么会这样吗?
  • 当我在文件树中进行搜索和替换而不过滤掉 .pyc 文件时发生了这种情况。但是任何其他修改/损坏 .pyc 文件的情况都可能导致它。
猜你喜欢
  • 1970-01-01
  • 2011-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-20
  • 2012-05-28
相关资源
最近更新 更多