2014-01-15 67 views
1

我正在研究一個安裝在virtual-env內部的python模塊。該模塊依賴於第三方的python模塊,比如pandas,matplotlib等,它們都依賴於非python包進行編譯。Python pip如何處理第三方依賴關係

我setup.py看起來是這樣的

config = { 
      'packages': ['name'], 
      'install_requires': ['numpy', 
           'pandas', 
           'cython', 
           'matplotlib', 
           ], 
      'name': 'name', 
     } 
setup(**config) 

我現在的工作流程是pip install包,並等待編譯錯誤,並手動安裝缺少的依賴關係。但是,如果我將模塊提供給我的同事,這可能會成爲一個痛苦的屁股。

有沒有辦法告訴PIP安裝非python的依賴就像

'external_requires': ['gcc', 
        ], 

'external_install': ['apt-get install'] 

或調用安裝腳本?什麼是最佳做法?

回答

1

最佳實踐取決於目標受衆,但因爲(i)apt-get特定於Debian/Ubuntu及衍生產品,(ii)需要超級用戶權限,(iii)軟件包的名稱會在不同版本之間更改, )包可能會發生衝突,我傾向於將這些東西放在自述文件中而不是腳本中。

+0

README文件的問題是,他們被忽略,因爲我的同事們打擾我;) – greole

+1

@greole然後,也許是時候在他們來到你家門前教他們RTFM。 –