我在Linux,Mac OS和Windows上运行python 2.6,需要确定内核是以32位还是64位模式运行.是否有捷径可寻?
我查看了platform.machine(),但这在Windows上无法正常工作.
我也查看了platform.architecture(),这在64位Windows上运行32位python时不起作用.
注意:看起来python 2.7有一个修复程序使platform.architecture()正常工作.不幸的是,我需要使用python 2.6(至少现在).
(编辑:从与人离线谈话,听起来似乎没有一种强大的python方式来做出这种决定而不诉诸邪恶的黑客.我只是好奇人们在他们的项目中使用的邪恶黑客使用python 2.6.例如,在Windows上可能需要查看PROCESSOR_ARCHITEW6432环境变量并检查AMD64)
如何解决issue7860
import os
import sys
import platform
def machine():
"""Return type of machine."""
if os.name == 'nt' and sys.version_info[:2] < (2,7):
return os.environ.get("PROCESSOR_ARCHITEW6432",
os.environ.get('PROCESSOR_ARCHITECTURE', ''))
else:
return platform.machine()
def os_bits(machine=machine()):
"""Return bitness of operating system, or None if unknown."""
machine2bits = {'AMD64': 64, 'x86_64': 64, 'i386': 32, 'x86': 32}
return machine2bits.get(machine, None)
print (os_bits())
Run Code Online (Sandbox Code Playgroud)
>>> import platform
>>> platform.architecture()
('32bit', 'ELF')
Run Code Online (Sandbox Code Playgroud)
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> platform.uname()[4]
'AMD64'
Run Code Online (Sandbox Code Playgroud)
这是 64 位 Windows 操作系统上的 Python 32 位。
| 归档时间: |
|
| 查看次数: |
5826 次 |
| 最近记录: |