【问题标题】:Python - check if a system is 32 or 64 bit to determine whether to run the function or not? [duplicate]Python - 检查系统是 32 位还是 64 位以确定是否运行该函数? [复制]
【发布时间】:2012-04-15 09:40:27
【问题描述】:

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

我之前提出了一个从未得到答复的问题,但我现在有一些更具体的问题,希望您能提供帮助。

基本上,SendKeys 库似乎只安装在我的 32 位 Windows 系统上...

所以我想知道是否有办法使我要编写的这个函数只能在 32 位系统上执行?我意识到有一个 platform.architecture() 方法来检查当前系统,但它返回字符串“('64bit','WindowsPE')”。

我想知道是否有办法读取此字符串的 64 位部分以使此函数正常工作。

例如伪代码:

checker = platform.architecture()
system = strip or read 64 bit from checker string somehow
if system == 64 bit
then warn system is 64 bit and won't run function
else run function

沿着这条线。除非有更简单的方法来检查它——可能是针对所使用的 Python 版本(即 32 位或 64 位)

希望我已经正确掌握了这一点 - 我对编程还是很陌生。 :)

【问题讨论】:

标签: python architecture bit


【解决方案1】:

跟随this documentation,试试这个代码:

is_64bits = sys.maxsize > 2**32

注意:如果 32 位 Python 在 64 位操作系统上运行,这可能会返回不正确的结果。

【讨论】:

  • 如果 Python 是 32 位,Windows 是 64 位,这会返回什么?
  • 它返回 False。
  • 谢谢!这似乎是解决方案。
  • 如果是解决方案,请将其标记为接受的解决方案:)
  • 另外,sys.maxsize > 2**31 有效。
【解决方案2】:

另一种方法。绝对适用于所有平台:

import struct
is_64bit = struct.calcsize('P') * 8 == 64

请注意,这是its.py 的一部分。

【讨论】:

  • its.py 很简单,因此您应该将其许可证更改为 PD!我认为将测试直接包含在脚本中而不是导入此模块会更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-30
  • 2018-12-14
  • 2012-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多