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

时间:2009-12-03 20:06:50

标签: python 64-bit

  

可能重复:
  How do I determine if my python shell is executing in 32bit or 64bit mode?

我正在使用Windows注册表做一些工作。根据您是以32位还是64位运行python,键值将不同。如何检测Python是否作为64位应用程序运行而不是32位应用程序?

注意:我对检测32位/ 64位Windows不感兴趣 - 只是Python平台。

2 个答案:

答案 0 :(得分:176)

import platform
platform.architecture()

来自Python docs

  

查询给定的可执行文件(默认值   到Python解释器二进制)for   各种架构信息。

     

返回一个元组(位,链接)   包含有关位的信息   架构和链接格式   用于可执行文件。两个值   以字符串形式返回。

答案 1 :(得分:58)

虽然它可能在某些平台上有效,但请注意platform.architecture并不总是确定python是以32位还是64位运行的可靠方法。特别是,在某些OS X多架构构建中,相同的可执行文件可以在任一模式下运行,如下面的示例所示。最安全的多平台方法是在Python 2.6,2.7,Python 3.x上测试sys.maxsize

$ 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)