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

関連情報