簡體   English   中英

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

[英]Entry message: [MSC v.1500 64 bit (AMD64)] on win32

我想知道,當我啟動 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?

win32是 Windows NT/95 API 的通用名稱,無論您使用的是 32 位還是 64 位操作系統(甚至在 16 位操作系統上使用 Win32s)。 *

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 上使用sys.maxsize > 2**32 2.x。 (請注意, 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)]

這僅意味着 Windows 平台,而不是您的架構是 32 位。 MSC v.1500 64 bit (AMD64)意味着它被編譯為 64 位應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM