1. ホーム
  2. python

[解決済み] Python ValueError:bad marshal dataを修正する方法は?

2022-02-24 17:17:42

質問

Ubuntuでflexget Pythonスクリプトを実行すると、エラーが発生します。

$ flexget series forget "Orange is the new black" s03e01
Traceback (most recent call last):
File "/usr/local/bin/flexget", line 7, in <module>
from flexget import main
File "/usr/local/lib/python2.7/dist-packages/flexget/__init__.py", line 11, in <module>
from flexget.manager import Manager
File "/usr/local/lib/python2.7/dist-packages/flexget/manager.py", line 21, in <module>
from sqlalchemy.ext.declarative import declarative_base
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/__init__.py", line 8, in <module>
from .api import declarative_base, synonym_for, comparable_using, \
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/api.py", line 11, in <module>
from ...orm import synonym as _orm_synonym, \
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/__init__.py", line 17, in <module>
from .mapper import (
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/mapper.py", line 27, in <module>
from . import properties
ValueError: bad marshal data (unknown type code)

解決方法は?

このエラーが発生した場合、Pythonモジュールのコンパイル済みバージョン(.pycファイル)が破損している可能性があります。Gentoo Linuxでは python-updater しかし、Debianでは、.pycファイルを削除することで、簡単に修正することができます。もし、pycがわからなければ、(rootで)全部削除すればいい。

find /usr -name '*.pyc' -delete