Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to fix Python ValueError:bad marshal data?

Tags:

python

Running flexget Python script in Ubuntu, I get an error:

$ 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) 
like image 782
Jaime M. Avatar asked Jun 15 '15 18:06

Jaime M.


2 Answers

If you get that error, the compiled version of the Python module (the .pyc file) is corrupt probably. Gentoo Linux provides python-updater, but in Debian the easier way to fix: just delete the .pyc file. If you don't know the pyc, just delete all of them (as root):

find /usr -name '*.pyc' -delete 
like image 158
Jaime M. Avatar answered Oct 11 '22 15:10

Jaime M.


There also appears to have been some sort of regression in setuptools with use with python 3.7. See for an example - https://github.com/pypa/setuptools/issues/1257

Forcing reinstallation of setuptools fixed this issue for me.

sudo pip3 install --upgrade --force-reinstall setuptools 
like image 20
tgoodhart Avatar answered Oct 11 '22 15:10

tgoodhart