2015-10-30 27 views
4

我在我的Windows 10工作站上運行此:爲什麼platform.release()在Windows 10中返回「8」?

import platform 
print platform.release() 
> 8 

我有些困惑。應該不是因爲我在Windows 10上的「10」嗎?

+2

我敢肯定它,因爲W10是第8的Windows版本..不知道如果我算錯了,雖然 – Sayse

+2

因爲W10是由營銷人員命名的,「platform.release()」由開發人員完成;)進一步突出營銷噱頭和現實世界之間的永恆知識差距。 – ray

+0

這已在Python 2.7.11中修復,其中'platform.release()'在Windows 10上返回10。 – fredrik

回答

3

我做了一些挖...

An issue得到解決的Python 2.7.10根據其release notes

  • 問題#16176:通過platform.platform正確標識Windows 8()

但是,在Windows 10中,您仍然沒有得到正確的響應。爲此,2015年9月下旬創建了一個修復程序:https://hg.python.org/cpython/rev/2f57270374f7

由於此操作是在2.7.10發行版(2015年5月底發佈)之後執行的,因此有望將其發佈到未來版本中。現在它應該將其定爲2015年12月發佈的2.7.11版本。

此修復使platform從kernel32.dll中讀取Windows版本以避免兼容性問題。

現在,解決方法是在系統基於Windows的情況下執行ver命令,然後手動解析響應。

編輯:的確,這是固定在Python 2.7.11:

import platform 
print platform.release() 
> 10 
相關問題