发行版-一个操作系统平台信息api
distro的Python项目详细描述
发行版-操作系统平台信息API
distro
提供有关
它运行的操作系统分布,如可靠的机器可读ID,或
版本信息。
它是python原始版本的推荐替代品
^{
发行版目前支持基于linux和bsd的系统,但Windows and OS X support也在计划中。
对于python 2.6支持,请参见https://github.com/nir0s/distro/tree/python2.6-support
安装
从pypi安装最新版本:
pip install distro
最新开发版本的安装:
pip install https://github.com/nir0s/distro/archive/master.tar.gz
用法
$ 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.linux_distribution(full_distribution_name=False)('centos', '7.1.1503', 'Core')
文档
在前面提到的api之上,还有几个函数可用。完整描述 api,请参见latest API documentation。
背景
因为Python3.5不赞成使用,所以有必要使用另一个实现。
这个函数,python 3.8将完全删除它。
它的前一个函数platform.dist
已经被弃用,因为
Python2.6也将在Python3.8中删除。
尽管如此,仍有许多情况需要访问这些信息。
有关详细信息,请参见Python issue 1322
信息。
distro
包实现了一种健壮且包含的方法来检索
有关基于新标准和旧方法的分发的信息,
即从这些数据源(从高优先级到低优先级):
- 操作系统发布文件
/etc/os-release
(如果存在)。 lsb_release
命令的输出(如果可用)。- 发行版发行文件(
/etc/*(-|_)(release|version)
),如果存在的话。 - 基于bsd的发行版的
uname
命令。
python和发行版支持
distro
在python 2.7、3.4+和pypypy上以及在
提供一个或多个数据源的任何分发
盖满。
这个包使用模拟a number of Linux distributions数据源的精确行为的测试数据进行测试。
测试
git clone git@github.com:nir0s/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/sid/python-distro
- https://packages.gentoo.org/packages/dev-python/distro
- https://pkgs.org/download/python2-distro
- https://slackbuilds.org/repository/14.2/python/python-distro/