我需要看一下,看看我是在Windows,Unix等吗?
以下命令可能返回的值是多少?
import sys
print sys.platform
Run Code Online (Sandbox Code Playgroud)
我知道有很多可能性,所以我主要对"主要"(Windows,Linux,Mac OS)感兴趣
在Python中至少有三种方法可以检测OS /平台.
每种方法的理想应用是什么?应该何时使用另一种方法?
编辑:我的具体用例是安装时和依赖项的运行时检查.setup.py如果我在"Windows"上,我不想安装某些库,因为它需要Visual Studio.然后,在运行时我想检查依赖项是否可用(它可能不在"Windows"上).
编辑2:看一个需要每个级别的操作系统细节的简短示例也会很棒.
我想以一种python形式在2.7.x脚本中添加一个检查
if __check_freebsd__():
# run actions which would only work on FreeBSD (e.g. create a jail)
elif __check_debian__():
# run an alternative that runs on Debian-based systems
else:
raise Error("unsupported OS")
Run Code Online (Sandbox Code Playgroud)
__check_freebsd__功能如何?
我已经有以下代码__check_debian__:
try:
lsb_release_id_short = sp.check_output([lsb_release, "-d", "-s"]).strip().decode("utf-8")
ret_value = "Debian" in lsb_release_id_short
return ret_value
except Exception:
return False
Run Code Online (Sandbox Code Playgroud)
所以你不必为此烦恼(当然,欢迎提出改进建议).
何时使用os.name,sys.platform或platform.system?暗示os.name可能是'nt'.
在Python中可靠地检测Windows建议os.name就是这样'posix'.
难道'posix'还是'nt'?
Python os.name在Windows 7上返回“ nt”
我正在使用os.name来获取当前脚本正在其下运行的当前操作系统的名称。但是奇怪的是,它返回的不是“ Windows 7”,而是“ nt”。
这是代码:
import os
print(os.name)
Run Code Online (Sandbox Code Playgroud)
结果:
nt
Run Code Online (Sandbox Code Playgroud)