如何检测Python是否作为64位应用程序运行?

129 投票
2 回答
168001 浏览
提问于 2025-04-15 16:39

我正在处理Windows注册表的相关工作。根据Python是以32位还是64位运行,某些关键值会有所不同。我该如何判断Python是以64位应用程序运行还是32位应用程序运行呢?(我不关心Windows是32位还是64位,只想知道Python的运行平台。)

2 个回答

70

虽然在某些平台上这个方法可能有效,但要注意,platform.architecture 并不总是可靠的方式来判断 Python 是在 32 位还是 64 位环境下运行。特别是在某些 OS X 的多架构版本中,同一个可执行文件可能同时支持这两种模式,下面的例子就说明了这一点。最简单且安全的跨平台方法是测试 sys.maxsize,适用于 Python 2.6、2.7 和 Python 3.x。

$ arch -i386 /usr/local/bin/python2.7
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform, sys
>>> platform.architecture(), sys.maxsize
(('64bit', ''), 2147483647)
>>> ^D
$ arch -x86_64 /usr/local/bin/python2.7
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform, sys
>>> platform.architecture(), sys.maxsize
(('64bit', ''), 9223372036854775807)
228
import platform
platform.architecture()

来自Python文档

这个功能会查询指定的可执行文件(默认是Python解释器的二进制文件),获取各种架构信息。

它会返回一个元组(bits, linkage),里面包含关于位架构和可执行文件所用的链接格式的信息。两个值都是以字符串的形式返回的。

撰写回答