2012-01-04 9 views
2

我正在嘗試爲Python包創建一個安裝程序(使用distutils),該程序包包含使用「package_data」關鍵字參數包含的預編譯擴展模塊。我的setup.py看起來是這樣的:使用預編譯的擴展包生成Python版本相關的安裝程序

from distutils.core import setup 
setup(name="Foobar", 
     ... 
     packages = ['Foobar'], 
     package_data = {'Foobar': '_foobar.pyd'}) 

然而,建設這個包python setup.py bdist_msi生成將安裝的Python(命名爲Foobar-1.0.win-amd64.msi)的任何版本的安裝程序,即使擴展模塊只使用Python兼容它的編譯版本。

有什麼辦法要讓Distutils創建需要兼容Python版本的安裝程序,類似於什麼時候的distutils用來編譯擴展模塊生產(生產名爲Foobar-1.0.win-amd64-py2.7.msi安裝程序)

到目前爲止,我提出的最佳解決方案是包含一個額外的(虛擬)擴展包,但這看起來很笨拙,並且會產生一些額外的問題。

回答

1

這可以使用參數--target-version來完成,例如,

python setup.py bdist_msi --target-version=2.7 

Distutils documentation提到的參考bdist_rpm命令這個選項,但它也適用於bdist_msi

相關問題