2013-08-25 93 views
4

我在Github上創建了一個Python模塊,它使用Nose進行單元測試並使用Sphinx生成文檔。我有兩個問題:我應該在模塊的requirements.txt中包含Sphinx和/或Nose嗎?

  • 我應該包括獅身人面像和/或鼻子在我的模塊的依賴性在setup.py(install_requires),因爲它們不需要基本模塊的功能,只要你想建立的文檔/運行測試自己?

  • 我應該在Github的模塊的requirements.txt中包含Sphinx和/或Nose,基於同樣的原因,但是從Github下載我的項目的用戶可能更容易構建文檔/運行測試?

這是我的第一個Python模塊,所以有點最佳實踐/標準的建議將不勝感激。

回答

6

如果nose和/或sphinx不需要你的包的基本功能,那麼不包括他們在setup.py。強制用戶安裝它們可能不會使用的軟件包毫無意義。如果他們最終想幫助你開發你的軟件包,他們可以自己安裝必要的軟件包。

requirements.txt文件也不應該包含開發所需的軟件包,儘管這裏有一些擺動空間。

例如,在pandas上,我們使用我們的Travis-CI版本的需求文件。你可以檢查他們here

我們正在考慮的一件事是構建關於Travis-CI的文檔,因爲有時候失敗的doc構建會捕獲測試套件沒有的錯誤。在這種情況下,我們放在我們用來構建文檔的Python版本的需求文件中。

0

不要在setup.py中包含那些好看的東西。如果您願意,您可以爲開發人員編寫需求文件;用戶不需要一個。例如,調用一個文件reqs.development

-e . # include the package defined by setup.py in editable (development) mode 
nose 
sphinx 

用戶可以pip install yourmodulepip install https://your/tarball,開發者可以叉,克隆和pip install -r reqs.development

相關問題