特定のPyPIパッケージの適切なパッケージ名を決定するには?

特定のPyPIパッケージの適切なパッケージ名を決定するには?

Debian / DevuanシステムにPythonパッケージシステムをインストールしたいとしましょう。一部のPyPIパッケージには、リポジトリの適切なソースを介して使用できるDEBパッケージがあり、パッケージ名の前にpython3-(またはpython-Debianのバージョンによって)プレフィックスが付いています。しかし - 誰もがそうではありません。今はいつでもできます。独自のDEBパッケージを実行するしかし、 - 私が興味のあるパッケージが次のようなものであるかどうかはどうすればわかりますか?

  • 実際に消えた。
  • 使用可能ですが、別の名前を使用します(より短い形式、より長い形式、PyPIで変更されたレガシー名など)。
  • 利用可能ですが、他のPyPIパッケージにバンドルされています

?簡単なマッピングルールがあるか、PyPIパッケージ名を使用してクエリを実行し、適切なパッケージ名を取得できる場所がありますか?

答え1

特定のPythonパッケージと一致するDebianパッケージを見つける最も安定した方法は、後者のインポート方法を理解することです。例えば、パンダデータベースimport from pandasql; Debianパッケージで利用可能な場合は公開されます/usr/lib/python3/dist-packages/pandasql

そのようなパッケージが存在するかどうかを確認するには、apt-fileまだ存在しない場合はインストールして次の質問をします。

sudo apt update
apt-file search /usr/lib/python3/dist-packages/pandasql

パッケージが存在する場合はapt-fileその名前が表示され、何も見つからない場合はパッケージが存在しません。

ほとんどの場合、Pythonバイナリパッケージはモジュール名を反映する必要がありますが、いくつかの注意事項とともに:

モジュールバイナリパッケージfooモジュール名が許可する場合は、名前を指定することをお勧めします。バイナリパッケージが複数のモジュールをインストールする場合は必要ありません。この場合、管理者はパッケージのモジュールを最もよく表す名前を選択する必要があります。python3-foo

パッケージの命名にモジュールで使用される名前は、とともに使用できる名前です。これは、setuptoolsとファイルとディレクトリに使用される名前と必ずしも同じである必要importはありません。たとえば、で説明されているモジュールはvia経由で使用されるため、対応するパッケージ名ではありません。PKG-INFO.egg-infopyxdg-*.egg-infoimport xdgpython3-xdgpython3-pyxdg

答え2

正直な答えは、経験に基づいた推測をしたり、その中にある文書を見つけなければならないということです。 (「学習された推測」にはapt search …pypiパッケージ名の使用などが含まれます)

その中のファイルを確認してください。正直なところ、私はvenvインストールを実行し、埋め込みファイルを表示させます。それから重要であり、存在しなければならず、十分に固有の特定のファイルを選択し、そのような名前のファイルを含むパッケージが何であるかを Debian パッケージング インフラストラクチャに問い合わせてください。たとえばsigmf、パッケージの場合:

python3 -m venv temporary_venv
source temporary_venv/bin/activate
pip install sigmf
pip show -f sigmf

最後のコマンドが提供したファイルのリストからを選択しましたsigmf/sigmffile.py。そのファイルがないと、パッケージが完成しないように見え、他の場所で見たファイル名でもありません。

rm -rf temporary_venv(今ターミナルを閉じることができます。他に触れませんでした。)

だから、

# apt-file might need to be installed first, `sudo apt install apt-file`
apt-file update
apt-file find sigmf/sigmffile.py

結果が生成されないため、sigmfを含むパッケージはありません。

関連情報