输入消息:win32上的[MSC v.1500 64位(AMD64)]

时间:2015-04-20 10:24:22

标签: python python-2.7

我想知道,当我启动python时,我收到以下消息:

Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

我使用的是64位python,但为什么它提到win32而不是win64?

2 个答案:

答案 0 :(得分:13)

win32是Windows NT / 95 API的通用名称,无论您使用的是32位还是64位操作系统(甚至是在16位操作系统上使用Win32)。 *功能

64 bit (AMD64)告诉你它是一个64位的Python,是为64位Win32操作系统而构建的,所以一切都很好。

win32与您在sys.platform中看到的字符串相同,它记录了您应该为每个支持的平台看到的字符串。

[MSC v.1500 64 bit (AMD64)]标识编译器。在其他平台上,Python不会将平台信息塞进编译器名称字段。 ** 但我猜他们认为这很重要,而且没有其他地方可以去了。 :)

无论如何,获取此信息的安全方法不是尝试从横幅中解析它,而是在Python 3.x上使用sys.maxsize.bit_length() > 32,或在Python 2.x上使用sys.maxsize > 2**32。 (请注意platform.architecture特别建议。)


*为什么?谁知道。有些文档确实谈到了“Win32 / Win64 API”,尽管在大多数当前的文档中他们都避免使用它并说“Windows API”。这可能与他们在“Win32”,“Windows”和“Windows API”上有商标,而不是“Win64”,“Win32 API”或“Win64 API”...

**部分是因为它无法知道在编译时,如果Python可以构建为多个体系结构的通用二进制文件。例如,我Mac上的Python 2.7.6同时包含x86和x86_64代码;如果我运行前者,它是32位,如果我运行后者,则是64位。所以编译器只是说[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)]

答案 1 :(得分:2)

它只适用于Windows平台,而不是您的架构是32位。 MSC v.1500 64 bit (AMD64)表示它被编译为64位应用程序。