~/.xefm/requirements.txtEnglish | 日本語
config.py でできることの中には、XeFM に同梱されていない Python ライブラリを必要とするものがあります。pillow-heif のような Pillow プラグイン、IMAGE_DECODERS のエントリでカメラの RAW を扱うための rawpy、自分のアクションが import するものなどです。それらを config.py と同じ場所にある ~/.xefm/requirements.txt に書き、同期します。
# ~/.xefm/requirements.txt
pillow-heif
rawpy
xefm deps sync
XeFM の中からなら Tools → Advanced → Sync Python Packages です(コマンドパレットでは sync_python_packages)。同期はバックグラウンドで実行され、pip の出力はログペインに表示され、終わると設定が再読み込みされます。
これはどのインストール方法でも同じように動きます。macOS アプリ(DMG または Homebrew cask)、Windows アプリ(zip または Microsoft Store)、Homebrew formula、pipx / uv / pip のいずれもです。ライブラリは XeFM 自体のインストール先ではなく ~/.xefm/site-packages/ に置かれるので、XeFM をアップグレードしても残ります。
site-packages/3.14/)。新しい XeFM がより新しい Python で動くと、ログにその旨が表示され、同期すると同じ一覧が改めてインストールされます。拡張パッケージは、必要なライブラリをマニフェスト(requires.python_packages)に書いておけます。同じ同期で、それらも requirements.txt と一緒にインストールされ、すべてまとめて依存関係が解決されます。そうした拡張機能をインストールすると、すぐに同期するかどうかを尋ねられます。同期が実行されるまで拡張機能は読み込まれず、ログにその理由が表示されます。拡張機能を削除または無効にしても、そのライブラリは次の同期まで残ります。
| コマンド | 動作 |
|---|---|
xefm deps sync |
~/.xefm/site-packages を requirements.txt に合わせます。ネットワークが必要です。 |
xefm deps status |
同期が必要かどうかを表示します。オフラインで動作します。必要な場合は終了コード 1 で終了します。 |
requirements.txt は普通の pip の requirements ファイルです。バージョン指定、--index-url、~/.xefm からの相対パスがすべて使えます。ファイルが -r で別のファイルを取り込んでいる場合、その別のファイルを編集しても起動時の確認では気づかれないので、自分で同期を実行してください。
~/.xefm/site-packages/ を手で編集しないでください。同期のたびに置き換えられます。~/.xefm を dotfiles リポジトリで管理している場合は、requirements.txt をコミットし、site-packages/ は含めないでください。各マシンがそれぞれ同期します。