EOFError: marshal data too short 已解决
明明什么也没改,跑程序的时候就突然报这个错,import numpy都不行了…找了好久,知道要删掉__pycache__但是不知道删哪里的,其实很简单,找到最后的报错点,顺藤摸瓜就可以!
报错内容
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 674, in exec_module
File "<frozen importlib._bootstrap_external>", line 779, in get_code
File "<frozen importlib._bootstrap_external>", line 487, in _compile_bytecode
EOFError: marshal data too short
(object_detection) [root@a28d572945c1 vggish]# python vggish_extract_features.py
Traceback (most recent call last):
File "vggish_extract_features.py", line 51, in <module>
import numpy as np
File "/root/miniconda2/envs/object_detection/lib/python3.6/site-packages/numpy/__init__.py", line 187, in <module>
from .testing import Tester
File "/root/miniconda2/envs/object_detection/lib/python3.6/site-packages/numpy/testing/__init__.py", line 10, in <module>
from unittest import TestCase
File "/root/miniconda2/envs/object_detection/lib/python3.6/unittest/__init__.py", line 59, in <module>
from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf,
File "/root/miniconda2/envs/object_detection/lib/python3.6/unittest/case.py", line 6, in <module>
import logging
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 674, in exec_module
File "<frozen importlib._bootstrap_external>", line 779, in get_code
File "<frozen importlib._bootstrap_external>", line 487, in _compile_bytecode
EOFError: marshal data too short
解决方法
从报错可以看出最后是import logging出错了,所以删掉/root/miniconda2/envs/object_detection/lib/python3.6/logging
这个目录下的__pycache__目录
cd /root/miniconda2/envs/object_detection/lib/python3.6/logging
rm -rf __pycache__
注意object_detection是我的conda环境的名字
完美解决~
2022.04.26更新
没想到这么快又碰到了一回这个错误,而且更加错综复杂了
>>> from sklearn import metrics
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/root/miniconda2/envs/object_detection/lib/python3.6/site-packages/sklearn/__init__.py", line 82, in <module>
from .base import clone
File "/root/miniconda2/envs/object_detection/lib/python3.6/site-packages/sklearn/base.py", line 17, in <module>
from .utils import _IS_32BIT
File "/root/miniconda2/envs/object_detection/lib/python3.6/site-packages/sklearn/utils/__init__.py", line 23, in <module>
from .class_weight import compute_class_weight, compute_sample_weight
File "/root/miniconda2/envs/object_detection/lib/python3.6/site-packages/sklearn/utils/class_weight.py", line 7, in <module>
from .validation import _deprecate_positional_args
File "/root/miniconda2/envs/object_detection/lib/python3.6/site-packages/sklearn/utils/validation.py", line 22, in <module>
import joblib
File "/root/miniconda2/envs/object_detection/lib/python3.6/site-packages/joblib/__init__.py", line 120, in <module>
from .parallel import Parallel
File "/root/miniconda2/envs/object_detection/lib/python3.6/site-packages/joblib/parallel.py", line 26, in <module>
from ._parallel_backends import (FallbackToBackend, MultiprocessingBackend,
File "/root/miniconda2/envs/object_detection/lib/python3.6/site-packages/joblib/_parallel_backends.py", line 17, in <module>
from .pool import MemmappingPool
File "/root/miniconda2/envs/object_detection/lib/python3.6/site-packages/joblib/pool.py", line 31, in <module>
from ._memmapping_reducer import get_memmapping_reducers
File "/root/miniconda2/envs/object_detection/lib/python3.6/site-packages/joblib/_memmapping_reducer.py", line 37, in <module>
from .externals.loky.backend import resource_tracker
File "/root/miniconda2/envs/object_detection/lib/python3.6/site-packages/joblib/externals/loky/__init__.py", line 12, in <module>
from .backend.reduction import set_loky_pickler
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 674, in exec_module
File "<frozen importlib._bootstrap_external>", line 779, in get_code
File "<frozen importlib._bootstrap_external>", line 487, in _compile_bytecode
EOFError: marshal data too short
找了半天不知道.backend。reduction这种怎么弄,
聪明的我这么干的
ctrl+click先跳到报错的那个函数
看到最上面一行的目录关系了么,把所有的__pycache__目录都删掉就可以了!
[root@a28d572945c1 object_detection] cd lib/python3.6/site-packages/joblib
[root@a28d572945c1 joblib] rm -rf __pycache__/
[root@a28d572945c1 joblib] cd externals/
[root@a28d572945c1 externals] rm -rf __pycache__/
[root@a28d572945c1 externals] cd loky/
[root@a28d572945c1 loky] rm -rf __pycache__/
[root@a28d572945c1 loky] cd backend/
[root@a28d572945c1 backend] rm -rf __pycache__/
参考链接
https://github.com/PaddlePaddle/PaddleSeg/issues/1867
https://groups.google.com/g/comp.lang.python/c/easB1mE3rJY?pli=1