一、platform库的作用
platform
是Python的一个标准库,它提供了许多用于访问操作系统底层信息的函数。你可以使用这个库来获取有关操作系统、硬件、Python解释器等方面的信息。
例如,可以使用platform.system()
函数来获取操作系统名称,使用platform.machine()
函数来获取计算机类型,或者使用platform.python_version()
函数来获取当前运行的Python解释器的版本信息。
这个库对于编写跨平台的代码非常有用,它可以帮助检测当前运行的操作系统和硬件环境,并根据这些信息来调整程序的行为。
二、常用操作
2.1引入头文件
import platform
2.2程序遇到无法识别或不支持的操作系统时,如何优雅地终止程序。
def platform_not_found():
print(platform.system(), platform.uname())
print("unknow platform")
quit()
如果版本不支持
- 调用
platform
模块的system()
和uname()
函数,以获取当前运行代码的操作系统信息,并打印platform
模块返回的系统名称和系统信息。 - 打印一条消息 "unknown platform",表示代码无法识别当前操作系统的类型。
- 最后调用
quit()
函数,退出程序。
2.3根据当前操作系统的类型导入不同的模块
if platform.system() == "Windows":
from base_env_onnxruntime import *
elif platform.system() == "Linux":
if platform.node() == "Ambarella": # CV2x
from base_env_ambarella import *
elif "tegra" in platform.release(): # Orin
from base_env_orin import *
elif platform.node() == "j7-evm":
from base_env_tda4 import *
else:
platform_not_found()
else:
platform_not_found()
if platform.system() == "Windows":
如果当前操作系统是Windows,执行以下语句块。from base_env_onnxruntime import *
导入base_env_onnxruntime
模块中的所有对象,以便初始化程序。elif platform.system() == "Linux":
如果当前操作系统是Linux,执行以下语句块。if platform.node() == "Ambarella":
如果当前操作系统是基于Ambarella平台的Linux系统,执行以下语句块。from base_env_ambarella import *
导入base_env_ambarella
模块中的所有对象,以便初始化程序。elif "tegra" in platform.release():
如果当前操作系统是基于Nvidia Tegra平台的Linux系统,执行以下语句块。from base_env_orin import *
导入base_env_orin
模块中的所有对象,以便初始化程序。elif platform.node() == "j7-evm":
如果当前操作系统是基于TI TDA4平台的Linux系统,执行以下语句块。from base_env_tda4 import *
导入base_env_tda4
模块中的所有对象,以便初始化程序。else:
如果当前操作系统不是上述三种类型之一,调用platform_not_found()
函数,该函数会输出一条错误信息并退出程序。else:
如果当前操作系统既不是Windows也不是Linux,调用platform_not_found()
函数,该函数会输出一条错误信息并退出程序。
总的来说,这段代码是根据当前操作系统的类型,导入相应的模块,并执行相应的初始化操作,以便程序能够正确地运行在该操作系统上。如果无法确定当前操作系统的类型,则会输出一条错误信息并退出程序。
2.4判断操作系统是否符合要求,以及导入不同操作系统模块完整代码
mport platform
def platform_not_found():
print(platform.system(), platform.uname())
print("unknow platform")
quit()
if platform.system() == "Windows":
from base_env_onnxruntime import *
elif platform.system() == "Linux":
if platform.node() == "Ambarella": # CV2x
from base_env_ambarella import *
elif "tegra" in platform.release(): # Orin
from base_env_orin import *
elif platform.node() == "j7-evm":
from base_env_tda4 import *
else:
platform_not_found()
else:
platform_not_found()