如何确定给定 PyPI 包的 apt 包名称?

ein*_*lum 8 debian apt package-management pip devuan

假设我想在 Debian/Devuan 系统上安装一个 Python 包系统。某些 PyPI 软件包具有可通过存储库的 apt 源获取的 DEB 软件包,软件包名称前缀为python3-(或python-,取决于 Debian 版本)。但是——并非所有人都这样做。现在,我总是可以推出自己的 DEB 包,但是 - 我如何知道我感兴趣的包是否是:

  • 实际上失踪了;
  • 可用,但使用另一个名称(较短的形式、较长的形式、传统名称现在在 PyPI 等上更改);或者
  • 可用,但与其他 PyPI 包捆绑在一起

?是否有一个简单的映射规则,或者我可以在某个地方使用 PyPI 包名称进行查询并获取 apt 包名称?

Ste*_*itt 15

查找与给定 Python 包匹配的 Debian 包的最可靠方法是了解应如何导入后者。例如导入pandasqlfrom pandasql;如果它在 Debian 软件包中可用,它将发布/usr/lib/python3/dist-packages/pandasql.

\n

要确定此类软件包是否存在,请安装(apt-file如果您尚未安装)\xe2\x80\x99t,并询问:

\n
sudo apt update\napt-file search /usr/lib/python3/dist-packages/pandasql\n
Run Code Online (Sandbox Code Playgroud)\n

如果包存在,apt-file会告诉你它的名字;如果它没有找到任何东西,则该包不存在。

\n

在大多数情况下,Python 二进制包应反映其模块名称,但有一些注意事项

\n
\n

如果模块名称允许,模块的二进制包foo最好命名为。如果二进制包安装了多个模块,则不需要这样做,在这种情况下,维护者应选择最能代表该包的模块的名称。python3-foo

\n

出于包命名的目的,用于模块的名称是可以与 一起使用的名称,该名称不一定与 setuptools以及文件和目录import中使用的名称相同。例如,中描述的模块是通过via使用的,因此它的包名称是而不是。PKG-INFO.egg-infopyxdg-*.egg-infoimport xdgpython3-xdgpython3-pyxdg

\n
\n