检查 Python 是以 32 位还是 64 位运行的
Check if the Python is running as 32-bit or 64-bit
使用该python -c "import sys; print(sys.maxsize > 2**32)"
命令检查 Python 是以 32 位还是 64 位运行的。True
如果 Python 以 64 位和32 位运行,该命令将返回False
。
# 👇️ returns True if Python interpreter is running in 64-bit # works on Linux, macOS and Windows python -c "import sys; print(sys.maxsize > 2**32)"
您可以使用相同的方法从脚本内部检查 Python 解释器运行的是 32 位还是 64 位。
import sys is_64bits = sys.maxsize > 2**32 print(is_64bits) if is_64bits: print('Python is running as 64-bit application') else: print('Python is running as 32-bit application')
如果 Python 解释器以 64 位和32 位运行,则sys.maxsize > 2**32
表达式返回。True
False
这是
文档推荐的方法。
sys.maxsize属性
返回一个整数,通常2**31 - 1
在 32 位平台和2**63 - 1
64 位平台上。
sys.maxsize
属性返回的值大于,则 Python 解释器以 64 位运行。 2**32
这种方法适用于 Windows、macOS 和 Linux。
如果您使用的是 Windows,您还可以启动 shell 并查看消息以检查您的 Python 是否作为 32 位或 64 位应用程序运行。
一些在线示例可能会使用
platform.architecture
方法来检查 Python 解释器是否以 32 位或 64 位运行。
import platform print(platform.architecture()[0]) # 👉️ 64bit
但是,该方法的输出对于 macOS 和其他一些平台并不可靠,因为可执行文件可能是包含多种体系结构的通用文件。
该sys.maxsize > 2**32
表达式在所有平台上都是可靠的。
您还可以使用
struct.calcsize()
方法来检查 Python 是作为 32 位还是 64 位应用程序运行。
import struct print(struct.calcsize('P') * 8) # 👉️ 64 if struct.calcsize('P') * 8 == 64: print('Python is running as 64-bit application') else: print('Python is running as 32-bit application')
该P
字符表示 void *
(通用指针)。
该指针在 32 位系统上为 4 个字节,在 64 位系统上为 8 个字节。
对该struct.calcsize()
方法的调用计算存储单个指针所需的字节数。
结果将4
在 32 位系统和8
64 位系统上。
我们将 or 乘以or位4
得到结果。8
8
32
64
您选择哪种方法是个人喜好的问题。我会使用
sys.maxsize > 2**32
它,因为它在文档中被推荐并且适用于所有操作系统。