file 명령은 Python 바이트코드 오류를 dBase III DBT 파일로 분류합니다.

file 명령은 Python 바이트코드 오류를 dBase III DBT 파일로 분류합니다.

저는 cx-Freeze를 사용하여 PyQt5 애플리케이션을 동결하고 있습니다. OSX 10.13을 실행하는 Jenkins 슬레이브에서 cx-Freeze가 file 명령을 사용하여 파일 형식을 확인할 때 .pyc 파일(Python 바이트코드)을 일부 비utf-8 문자 출력이 포함된 dBase III DBT 파일로 분류합니다.

$>file ./__pycache__/archive_util.cpython-35.opt-2.pyc
./__pycache__/archive_util.cpython-35.opt-2.pyc: dBase III DBT, version number 0, next free block index 168627479, 1st item "N)?warn)?DistutilsExecError)?spawn)?mkpath)?log)getpwnam)getgrnamc"

Mac OS에서 동일한 파일에 대해 file 명령을 실행하면 올바른 분류가 표시됩니다.

$>file ./__pycache__/archive_util.cpython-35.opt-2.pyc
./__pycache__/archive_util.cpython-35.opt-2.pyc: python 3.5.2+ byte-compiled

fileJenkins 빌드 머신에서 이런 방식으로 명령을 실행하게 할 수 있는 방법은 무엇일까요 ?

답변1

file다른 매직 파일이 있는 다른 버전의 명령일 수 있습니다( /usr/share/file/magic.mgcPython의 "dBase III" 정의 및 소스 파일 참조). 또는 pyc 파일이 다르고(Python 버전 및/또는 코드가 다름) Jenkins와 일치하는 오류가 있습니다./usr/share/file/magic/database/usr/share/file/magic/pythonfile

파일을 비교하거나 교체한 후 file다시 실행해 보셨나요? 두 파일이 동일한 경우 다른 파일이어야 합니다 magic.mgc(또는 다른 소스 파일이나 다른 구성(예: MAGIC환경 변수)이 누락된 경우에는 그럴 가능성이 낮습니다).

관련 정보