Python:如何断言我在POSIX环境下运行?

4 投票
3 回答
2131 浏览
提问于 2025-04-17 01:53

我正在写一些专门针对POSIX系统的代码,虽然我不打算支持其他平台,但我希望如果有人尝试在其他平台上使用我的代码时,能看到一个清晰的错误提示,而不是一些奇怪的错误信息。

有没有什么简单的方法可以检查这一点呢?我想我可以尝试用 import posix 来导入,然后捕捉 ImportError,但这样感觉有点啰嗦。

3 个回答

0

与其导入posix模块,不如导入os模块,这样用户可以使用一部分指令(但不是那些特定于posix的指令)。然后你可以利用sys.platform这个功能来检查用户运行你代码的操作系统,然后决定是否抛出一个异常 :)

3

你可以:

def is_posix():
    try:
        import posix
        return True
    except ImportError:
        return False

你也可以查看 sys.platformos.uname()[0] 来获取系统信息,但我觉得问“你的系统有没有这个功能”比问“你的系统是其中之一吗……因为我知道它们现在有这个功能”更自然。

12

看看这个 os.name

这是一个跟操作系统有关的模块名称。现在已经注册的名称有:'posix'、'nt'、'os2'、'ce'、'java' 和 'riscos'。

如果你需要更详细的信息,还可以查看 sys.platformos.uname()

撰写回答