我正在写一些特定于POSIX的代码,虽然我不支持其他平台,但我想确保他们在导入时得到一个很好的明确错误,而不是奇怪的错误,如果他们试图使用我的代码
有没有一种简洁的方法来检查?我想我可以import posix
并抓住ImportError
,但这似乎有些冗长。
答案 0 :(得分:11)
看看os.name
:
导入的操作系统相关模块的名称。该 目前已注册以下名称:'posix','nt','os2', 'ce','java','riscos'。
如果您需要更精细的粒度,还有sys.platform
和os.uname()
。
答案 1 :(得分:3)
def is_posix():
try:
import posix
return True
except ImportError:
return False
您也可以解析sys.platform
或os.uname()[0]
,但我认为更自然地问“您的系统是否具有该功能”而不是“是您系统之一...,因为我知道他们现在有这个功能“。
答案 2 :(得分:0)
而不是import posix你应该导入os,所以你可以为用户提供一个可用的指令子集(但不是特定于posix的指令)然后你可以使用sys.platform功能检查用户的平台正在运行您的代码然后抛出异常:)