【发布时间】:2011-02-15 09:37:03
【问题描述】:
首先,我不认为这个问题是重复的
Detect 64bit OS (windows) in Python
因为恕我直言,它还没有得到彻底的回答。
唯一接近的答案是:
使用
sys.getwindowsversion()或存在PROGRAMFILES(X86) (if 'PROGRAMFILES(X86)' in os.environ)
但是:
- windows环境变量
PROGRAMFILES(X86)可靠吗?我担心任何人都可以创建它,即使它不在系统上。 - 如何使用
sys.getwindowsversion()获取架构?
关于sys.getwindowsversion():
链接http://docs.python.org/library/sys.html#sys.getwindowsversion
将我们带到http://msdn.microsoft.com/en-us/library/ms724451%28VS.85%29.aspx
但我没有看到任何与架构(32 位/64 位)相关的内容。
此外,返回元组中的平台元素似乎与架构无关。
最后一点:我正在寻找同时使用 python 2.5 和从 Windows XP 开始的 windows 版本的解决方案
谢谢!
编辑:
相关信息可在此处获得
http://msdn.microsoft.com/en-us/library/ms724340%28v=VS.85%29.aspx
但是我怎样才能用 python 得到这个呢?
编辑2: 在 64 位 Windows 上,使用 32 位 python 解释器:
- os.environ["PROCESSOR_ARCHITECTURE"] 返回
- 'x86'
- platform.architecture() 返回
- ('32bit', 'WindowsPE')
【问题讨论】:
-
您到底想知道什么?架构大小还是存放程序的地方?
-
正如问题标题所说:架构和版本的大小
-
Tjese 的答案是正确的,解决方案也是正确的,只要您在 64 位上运行 32 位程序,Windows 就会模拟这些数据。所以 winapi 会为你返回一个不正确的版本。
-
我正在寻找独立于 python 解释器目标架构的正确答案。这是我正在寻找的操作系统架构。
-
仅架构子集:stackoverflow.com/questions/7491391/… 32 vs 64 子集:stackoverflow.com/questions/1405913/…
标签: python windows cpu-architecture