私は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
実行してみましたか? 2つのファイルが同じ場合は別のファイルである必要がありますmagic.mgc
(または他のソースファイルや他の設定(MAGIC
環境変数など)が見つからない場合はそうではありません)。