Distro - 一个操作系统平台信息API
项目描述
Distro - 一个操作系统平台信息API
distro
提供关于运行在其上的操作系统发行版的信息,例如可靠的机器可读ID或版本信息。
它是Python原始 platform.linux_distribution
函数的推荐替代品(在Python 3.8中已删除)。它还提供了许多功能,这些功能不一定与Python绑定,例如命令行界面。
Distro目前支持基于Linux和BSD的系统,但Windows和OS X支持也计划中。
关于Python 2.6的支持,请参阅https://github.com/python-distro/distro/tree/python2.6-support
安装
从PyPI安装最新发布版本
pip install distro
安装最新开发版本
pip install https://github.com/python-distro/distro/archive/master.tar.gz
作为独立脚本使用,直接下载distro.py
curl -O https://raw.githubusercontent.com/python-distro/distro/master/src/distro/distro.py
python distro.py
distro
对于不希望添加依赖的项目来说是安全的。
cd myproject
curl -O https://raw.githubusercontent.com/python-distro/distro/master/src/distro/distro.py
使用方法
$ distro
Name: Antergos Linux
Version: 2015.10 (ISO-Rolling)
Codename: ISO-Rolling
$ distro -j
{
"codename": "ISO-Rolling",
"id": "antergos",
"like": "arch",
"version": "16.9",
"version_parts": {
"build_number": "",
"major": "16",
"minor": "9"
}
}
$ python
>>> import distro
>>> distro.name(pretty=True)
'CentOS Linux 8'
>>> distro.id()
'centos'
>>> distro.version(best=True)
'8.4.2105'
文档
除了上述API之外,还有一些其他功能可用。关于API的完整描述,请参阅最新API文档。
背景
由于Python 3.5废弃了此功能,Python 3.8完全删除了它,因此有必要提供另一种实现。其前身函数platform.dist
自Python 2.6以来就已经被废弃,并在Python 3.8中被删除。尽管如此,仍然有许多情况下需要访问这些信息。有关更多信息,请参阅Python问题1322。
distro
包通过新的标准和旧方法,即从以下数据源(按优先级从高到低)实现了一种稳健且包容性的方式来检索有关发行版的信息:
- 如果存在,则使用
/etc/os-release
文件,如果需要,则回退到/usr/lib/os-release
。 - 如果可用,则使用
lsb_release
命令的输出。 - 如果存在,则使用发行版版本文件(
/etc/*(-|_)(release|version)
)。 - 对于基于BSD的发行版,使用
uname
命令。
Python和发行版支持
distro
在Python 3.6+和PyPy上受支持并经过测试,并且在任何提供所涵盖数据源之一的发行版上受支持。
此包使用模拟一些Linux发行版的数据源的确切行为的测试数据进行了测试。
测试
git clone git@github.com:python-distro/distro.git
cd distro
pip install tox
tox
贡献
欢迎提交针对特定发行版的拉取请求,或者只是为了一般的乐趣。
有关贡献信息,请参阅CONTRIBUTIONS。
支持额外发行版和文件格式的参考实现可以在此处找到
- https://github.com/saltstack/salt/blob/develop/salt/grains/core.py#L1172
- https://github.com/chef/ohai/blob/master/lib/ohai/plugins/linux/platform.rb
- https://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/facts/system/distribution.py
- https://github.com/puppetlabs/facter/blob/master/lib/src/facts/linux/os_linux.cc
包管理发行版
- https://src.fedoraproject.org/rpms/python-distro
- https://www.archlinux.org/packages/community/any/python-distro/
- https://launchpad.net/ubuntu/+source/python-distro
- https://packages.debian.org/stable/python3-distro
- https://packages.gentoo.org/packages/dev-python/distro
- https://pkgs.org/download/python3-distro
- https://slackbuilds.org/repository/14.2/python/python-distro/
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建的发行版
distro-1.9.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed |
|
MD5 | c4eee99e1d05691230f223c37b895027 |
|
BLAKE2b-256 | fcf898eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3 |
distro-1.9.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2 |
|
MD5 | e2b4993079a16ee01c267fec7f79053d |
|
BLAKE2b-256 | 12b3231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e |