문제
Hue를 빌드할 때 다음의 오류가 발생할 수 있습니다. 컴파일 된 pyc 파일과 실행환경의 파이선 버전이 달라서 데이터를 읽을 수 없을 때 발생하는 오류입니다.
ValueError: bad marshal data (unknown type code)
해결 방법
Hue를 빌드 할 때. 파이선3의 환경으로 설정하라고 되어 있었지만 장고 모듈을 빌드하는 과정에서 해당 오류가 발생하여 파이썬2로 빌드하여 문제를 해결할 수 있었습니다.
export PYTHON_VER=python2.7
해당 오류는 pyc 파일을 삭제하고 실행 환경의 파이썬으로 다시 빌드하면 해결할 수 있습니다.
find . -name "*.pyc"
참고
marshal을 이용해서 파일을 읽는 방법은 다음과 같습니다.
import marshal
filename = "bdist.linux-x86_64/egg/django_prometheus/__pycache__/__init__.cpython-38.pyc"
f = open(filename, 'rb')
f.read(8)
code = marshal.load(f)
f.close()
f = open(filename, 'rb')
f.read(12)
code = marshal.load(f)
f.close()
반응형