在Windows下,我正在运行一个32位python.exe。我需要知道OS/CPU是64位还是32位。Python:如何知道OS/CPU是64位
我的机器运行Windows7 64位。
经过this post,并试图运行此Python脚本:
import ctypes; print(32 if ctypes.sizeof(ctypes.c_voidp)==4 else 64, 'bit CPU')
import sys; print("%x" % sys.maxsize, sys.maxsize > 2**32)
import struct; print(8 * struct.calcsize("P"))
import platform; print(platform.architecture()[0])
print(platform.machine())
它输出:
32 bit CPU
7fffffff False
32
32bit
AMD64
没有提出从引用的帖子真的让你的CPU/OS的架构信息。他们都报告32位,因为我正在运行一个Python 32位二进制文件。
如何以便携的方式确定CPU/OS是32位还是64位(可以在platform.machine()中使用64位字符串的loopu,但我怀疑这是好方法)?
那么为什么'AMD64'不能告诉你这个?在32位二进制中,其他值肯定应该是32位,这是完全正常的。 “AMD64”或“x86_64”都应该告诉你CPU是64位的。 –
@MartijnPieters:是的,它告诉我,但正在做'is_64 =(platform.machine()。find(“64”)!= -1)'一种便携的方式来检查?这将在64位的所有CPU/OS上运行吗? – jpo38
它适用于我尝试的3种不同架构(其中一种是VM)。 –