2011-05-26 93 views
3

我們有一個通過一系列雞蛋運行的本地系統。目前這意味着每個人都必須安裝Python 2.5的副本。是否有可能創建一個可以被Python 2.5,2.6和2.7使用的雞蛋(理想情況下還有更高版本)?我可以爲多個版本的Python創建一個蛋嗎?

很明顯,python代碼必須在所有三個版本下運行。同樣顯然,這個蛋不能包含任何C擴展名。稍微不太明顯,雞蛋必須包含python源(.py)文件,而不是.pyc文件。另外,我知道我們可以創建三個蛋(或者可能用三個名字複製一個蛋) - 但這似乎是錯誤的。

+0

你的軟件包包含僅Python代碼還是C擴展? – 2011-05-26 11:05:34

+0

「但這似乎是錯誤的」爲什麼?擁有Python版本特定的雞蛋更簡單。它使審計和確認一個正確的環境變得更容易。 – 2011-05-26 11:09:49

+2

您不需要特定版本的Python for Python-only軟件包 – 2011-05-26 11:31:04

回答

1

只分發源碼tarball;易於安裝(或者點或者擴展,或者你使用的任何軟件包依賴管理器/安裝程序)會爲你安裝用於安裝它的python版本創建一個egg。

您只需要創建一個只用於包含C-extensions的包的發佈的蛋,然後只用於Windows,因爲大多數Windows系統缺少自己構建egg所需的工具。

看看PyPI看到很多這樣的例子,比如zope.interface page。請注意,那裏只有.egg發行版,用於Windows的Python版本2.4,2.5和2.6。其他一切只使用.tar.gz tarball下載並根據需要在本地構建.egg

使用setup.py sdist命令構建源代碼tarball。我個人使用jarn.mkrelease;它可以爲您自動完成大部分流程(如將源代碼發佈上傳到分發服務器)。

相關問題