저는 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
file
Jenkins 빌드 머신에서 이런 방식으로 명령을 실행하게 할 수 있는 방법은 무엇일까요 ?
답변1
file
다른 매직 파일이 있는 다른 버전의 명령일 수 있습니다( /usr/share/file/magic.mgc
Python의 "dBase III" 정의 및 소스 파일 참조). 또는 pyc 파일이 다르고(Python 버전 및/또는 코드가 다름) Jenkins와 일치하는 오류가 있습니다./usr/share/file/magic/database
/usr/share/file/magic/python
file
파일을 비교하거나 교체한 후 file
다시 실행해 보셨나요? 두 파일이 동일한 경우 다른 파일이어야 합니다 magic.mgc
(또는 다른 소스 파일이나 다른 구성(예: MAGIC
환경 변수)이 누락된 경우에는 그럴 가능성이 낮습니다).