2014-06-16 51 views
0

我正在嘗試爲Python包創建簡單的Windows可執行文件安裝程序,只能將其內部傳遞給我的團隊中的其他開發人員。我想,讓他們在同一時間安裝軟件包的多個版本,並指定其通過不同的命令來運行:<package>-0.1<package>-0.2使用setuptools創建包的可執行文件分發--multi-version?

它看起來像setuptools提供安裝多個版本相當標準的方式的包裝:只需爲每個版本的包裝創建一個雞蛋,然後使用--multi-version選件easy_install安裝每個雞蛋。

但是,我不想提供雞蛋並要求開發人員通過命令行使用easy_install,而只是提供可以自動執行安裝的操作。 python setup.py bdist_wininst確實幾乎正是我想要的,但據我所知,沒有辦法創建使用--multi-version選項的bdist_wininst(或執行任何類似操作)。

有沒有辦法做到這一點?我意識到我可以手動編寫一個可執行程序來調用easy_install --multi-version,但這似乎是一個荒謬的解決方法,我希望可以使用setuptools的內置功能實現。


切圓,有一個簡單的方法讓安裝程序自動創建<package>-<version>.bat文件包的每個已安裝的版本?

+0

Woooo,風滾草徽章。那麼我猜我只會在沒有這個功能的情況下做。 –

回答

0

setup.py腳本爲SCons項目實現使用香草distutils此功能,而且方法也與setuptools使用。在編寫本文時,當前版本的setup.pyhere。訣竅是使用cmdclass自變量來替換install_lib,其中修改後的類繼承了distutils使用的默認install_lib類。

一個削減同樣的伎倆的版本,使用setuptools(注意,這是通過簡單地更換setuptoolsdistutils所有實例完成):

import setuptools.command.install_lib 
_install_lib = setuptools.command.install_lib.install_lib 
class install_lib(_install_lib): 
    def finalize_options(self): 
     _install_lib.finalize_options(self) 
     self.install_dir = join(self.install_dir,'PKG_NAME-'+PKGVERSION) 
相關問題