区分在 Windows 和其他操作系统(通常是 Linux)上运行的 Python 应用程序的通常检查是使用条件:
if sys.platform == 'win32':
...
但我想知道在过去几年64位Python得到更广泛使用的今天使用安全吗? 32 真的意味着 32 位吗,还是基本上指的是 Win32 API?
如果有可能有一天 sys.platform 为“win64”,也许这种情况会更普遍?
if sys.platform.startswith('win'):
...
我知道还有另一种检测 Windows 的方法:
if os.name == 'nt':
...
但我真的从未在其他代码中看到后者的使用。
那什么是最好的方法呢?
UPD:如果可以的话,我想避免使用额外的库。对于 Linux 用户来说,需要安装额外的库来检查我是否在 Windows 中工作可能会很烦人。
sys.platform
将win32
无论底层 Windows 系统的位数如何,如您所见PC/pyconfig.h
(来自 Python 2.6 源代码分发):
#if defined(MS_WIN64)
/* maintain "win32" sys.platform for backward compatibility of Python code,
the Win64 API should be close enough to the Win32 API to make this
preferable */
# define PLATFORM "win32"
可以找到原始补丁 http://mail.python.org/pipermail/patches/2000-May/000648.html网上对此进行了介绍,其中提供了更多解释:
主要问题是:Win64 是否更像 Win32,而不是不同之处,以至于常见情况下的一般 Python 程序员不必在他的 Python 代码中进行区分。或者,至少,足以使得 Python 脚本编写器的这种区分非常罕见,以至于其他提供的机制就足够了(甚至更可取)。目前答案是肯定的。希望微软不会改变这个答案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)