Windows 10家庭中文版,Python 3.6.4,
本文介绍了使用os、platform、sys三个模块获取Python程序的运行平台相关的信息。
os模块:提供 各种各样的操作系统接口
os.name -- 操作系统的名称,一个简称。已有三个被注册了:“posix”,“nt”,“java”,分别代表Unix类系统、Windows系统、Java虚拟机。
我的电脑上运行时,显示为“nt”。
os.cpu_count() -- 获取CPU核的数量。
我的电脑返回8。
上面两个只是获取平台相关信息的属性,此模块还有更多属性和方式用作其它功能,其官方文档相当长。
platform模块:访问平台底层的特征数据
paftform.machine() -- 平台架构——主要指处理器
platform.node() -- 电脑的网络名词
platform.processor() -- 处理器信息
platform.release() -- 操作系统发行信息
platform.system() -- 操作系统名称
platform.version() -- 操作系统版本
platform.uname() -- 返回平台的所有信息,包括上面介绍的,6个属性:system, node, release, version, machine, processor
platform.python_***() -- 返回Python解释器等相关信息,比如版本python_version(), 更有用的是python_version_tuple(),它返回一个元组,便于某些软件安装时判断Python版本以决定是否安装;
platform模块还包含一些各个平台独特的属性,请参考其官网文档。
sys模块:提供了 系统专用 的参数和函数——一些Python解释器使用和维护的变量,以及和解释器交互频繁的函数。
sys.platform -- 获取计算机平台信息(操作系统),可能的值包括sunos*, freebsd*, linux*, win32, cygwin —— Windows/Cygwin, darwin —— Mac OS X。
sys.version -- 获取Python解释器版本信息(文本)
sys.version_info -- Python解释器版本信息(返回一个sys.version_info的实例,包含Python版本信息)
Windows下还有sys.getwindowsversion()获取版本信息,我的结果:
sys.getwindowsversion(major=10, minor=0, build=15063, platform=2, service_pack='')
sys.implementation -- 获取Python解释器的实现版本信息,我的是官网的CPython,显示结果如下:
namespace(cache_tag='cpython-36', hexversion=50726128, name='cpython', version=sys.version_info(major=3, minor=6, micro=4, releaselevel='final', serial=0))
综上所述,要获取Python运行环境的信息,最完整的来源是platform模块,虽然模块较小,但却是专业的,难怪Django等框架会使用platform.python_version_tuple()来获取Python解释器版本并决定是否安装。