問題タブ [libmagic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - setup.py の条件付き要件
ほとんどのプラットフォームで問題なく動作するfile-magicに依存するライブラリを作成していますが、Alpine Linux では file-magic が動作しないため、代わりにpython-magicライブラリを使用する必要があります。
これで、さまざまな Python ライブラリ API を処理する独自のコードを作成する方法がわかりましたが、インストールを実行しているシステムに基づいて独自のコードを作成しsetup.cfg
たり、別の要件を設定したりする方法がわかりません。setup.py
最善の選択肢はPEP 508ルールを使用することだと考えましたが、パッケージの setup.py で機能するかどうかは言うまでもなく、「Alpine のような libmagic」またはその構文で何かを言う方法がわかりません。実際、インストールして死ぬのを見ないと、アーキテクチャの違いを見分ける方法さえわかりませんfile-magic
:-(
確かに、この種のことにはベストプラクティスが必要ですか?
アップデート
以下のティムからの幅広い理解の後、私はこのハックをまとめて機能させました。
これにより、 の宣言構文が可能になりますが、インストール先が Alpine システムの場合は値setup.cfg
が微調整されます。install_requires
file-type - libmagic にマジック データベースを提供する
指定されたファイルのファイルタイプを返す単純な C コードがあります。コマンドラインから任意のファイル名を指定すると、ファイルタイプが返されます。
問題は、これをパッケージ ファイルに依存したくないことです。また、別の名前に変更/usr/share/file/misc/magic.mgc
しても機能しません。マンページによると、これはコンパイル済みファイルであり、コンパイルされていないデータベースも存在する可能性があります。
そのため、ファイルをローカル ディレクトリにコピーしmagic.mgc
、コンパイルされたプログラムをそのまま実行したいと考えています。
システムが提供するデータベースに依存しないように、ローカルのマジック データベースを C プログラムに渡すことはできますか?