2014-09-10 77 views
0

我正在尋找分發幾個python腳本。這些腳本使用一些獨立的軟件包,如docopt,當然還可以使用各種庫。編號喜歡能夠將我的腳本與它需要正常運行的所有內容一起打包。瞭解如何通過setuptools實現python腳本的分發

從我讀過的最好的方法是使用setuptools和使用setup.py腳本。 Id想知道的是,setuptools能夠識別我的腳本中正在使用哪些軟件包和庫,並自動將所有相關軟件包從其當前位置複製到另一個目錄中,用於創建「新軟件包」。或者是否必須在我的系統上手動查找軟件包安裝並將它們複製到相關文件夾以創建「新建軟件包」?

我讀過setuptool文檔,但從我看過的文章看起來好像我需要手動完成所有工作?如果是這樣,我怎麼知道所有相關的軟件包和庫在我的系統上的確切位置?

有人可以讓我知道,如果我正確理解這一點?

+0

嘗試它沒有手動和看看。 – martineau 2014-09-10 14:37:08

+0

我已經看了這就是爲什麼林問我的理解是否正確。這看起來很奇怪,就像我認爲的那樣手動。當然它必須能夠自動完成。 – iNoob 2014-09-10 14:38:34

+0

@martineau我已閱讀setuptools文檔和distutil文檔。我剛剛嘗試用基本元數據創建setup.py,然後使用setup.py dist創建一個包。正如所料,它沒有做任何事情,用我的腳本文件和setup.py文件創建一個dist dir。我的腳本中使用的模塊,庫都沒有複製到dist導向器中。如此安全地假設你的意思是手動收集所有包,將它們放在同一個目錄中? – iNoob 2014-09-10 20:00:13

回答

1

好吧,我終於得到它的工作。

只是爲了防止任何人遇到這個帖子,想知道怎麼做簡單。

這個想法是,你有一個你想分享的腳本,但是這個腳本使用了各種其他模塊,軟件包等等。有人想要做的最後一件事就是開始把它們全部扔在一起創建一個非工作手冊包。

通過創建setup.py文件並指定要包含在腳本中的包,這些都可以自動完成。所有「必需包」的自動包含在安裝過程中完成(因此有人擁有新共享的腳本並使用easy_install進行安裝)。

要爲您的腳本生成分發包,您需要執行以下操作。

  • 確定您將需要包含哪些軟件包(查看您的代碼)。
  • 將您的腳本移動到一個新文件夾(這將是包容器)。
  • 按照此post中的說明創建您在發行版中喜歡的相關文件。 (請注意「install_requires」字段)
  • 從命令行執行python setup.py sdist,確保您的當前工​​作目錄是新軟件包的工作目錄。
  • 您的分發包現在位於遠端。
  • 通過這個你的朋友。他們需要從here安裝setuptools/easy_install。
  • 安裝完成後,他們可以通過執行easy_install packagename-0.1.0.tar.gz來安裝軟件包。現在將安裝所有必需的軟件包,當然還有你的腳本。