2009-12-14 77 views

回答

8

這是一個痛點,許多人。 setuptoolseasy_install在試圖發揮好與大家一些比較奇怪的規則。您可以閱讀setuptoolsparse_version方法的完整的規則,但這裏的總結:

  • 版本號是打破了由點成許多段的元組。 4.5.6.7被解析成等於("4", "5", "6", "7")元組。破折號或字母數字之間

  • 尾隨零被抑制。 2.4.0與2.4相同; 2.4.05與2.4.5相同。

  • 字母數字部分downcased。 2.4.a5等於2.4.A5。

  • 字符串之前的「最後」是按字母順序來被假定爲預發佈版本,因此2.4.5b到來之前,而不是之後,2.4.5。

  • 最後,好像他們是 「C」, 「前」, 「預覽」 和 「RC」 的處理。 「dev」這個詞被替換爲「@」,這樣它就會出現在其他版本之前。也就是說,x.y.z-dev保證來任何其他x.y.z版本之前。

有許多的建議整理東西有點多,其中最流行的是可能PEP 386

+1

PEP 386現在被接受並在包裝中實現(Python 3中.3 stdlib)和distutils2(2.4-3.2的獨立版本)。 – 2012-02-11 03:40:08

2

參見documentation或看源:文檔字符串在pkg_resources.py功能parse_version()。