2014-01-27 51 views
1

我正在研究需要sh的包。這個軟件包在Windows上不受支持。對於Windows,我使用舊包shpbs分叉,並在我的名稱空間中將其重命名爲sh我可以做一個python包依靠不同的包由操作系統?

如何創建一個setup.py,它將在Windows上正確安裝pbs,並在其他平臺上正確安裝sh

編輯:經過一番研究,原來我的問題是特定於新wheel格式my answer反映。如果我不知道車輪應該如何工作,我將在未來問一個不同的問題。

+0

在調用設置之前檢查'sys.platform'之類的東西 – JBernardo

回答

2

好吧,事實證明我原來的解決方案正確:

# setup.py 
... 
setup(
... 

    install_requires=["pbs" if os.name == 'nt' else "sh"] 
... 
) 

這家最近爆發的原因是由於新wheel格式釋放。我的理解是,這種新格式不會將setup.py與您的軟件包一起發佈,並使用其他方式處理依賴關係。

直到我明白如何運輸具有條件依賴關係的車輪,我不會爲此項目生產車輪。

3

是的!只要把你的代碼在條件塊的sys.platform變量如:

import sys 
if (sys.platform=='win32'): 
    import somewindowsmodule 
elif (sys.platform=='macOSX'): 
    import somemacmodule 
elif (sys.platform=='linux'): 
    import somelinuxmodule 

我不知道是什麼平臺串是爲Mac或Linux操作系統,但你可以明白這一點,我敢肯定。此外,某些模塊名稱都是虛構的以保護無辜者。 :)

+0

您是否建議將代碼放在'setup.py'中?我的問題是關於安裝依賴關係。 –

相關問題