2015-04-01 46 views
0

我有一個用Python編寫的工具,我想把它變成一個Python包,以便更容易地安裝依賴關係並分發它。Python包可從shell中調用嗎?

有兩種用法:

  1. 導入模塊mytool.py,調用其包裝功能,一些測量的摘要顯示在屏幕上,你獲得與全部結果的字典。 import mytool; results = mytool.mytool(param1=1, param2=2)
  2. 您可以從shell中調用mytool.py,使用與上面相同的參數,並在屏幕上打印測量摘要。 $ python mytool.py --param1 1 --param2 2

這是正確的嗎? 據我所知,當您從pypi安裝軟件包時,主要用法是第一點。安裝完成後,找到mytool.py的確切路徑並從shell中調用它可能會很麻煩。有其他選擇嗎?

回答

1

我覺得挺好的,只要確保在你的setup.py你指定存儲腳本打了一下,與disutils LIB

from distutils import setup 
setup(
    ..., 
    scripts=['path/to/your/script',], 
    ... 
) 

一個很好的路徑一些不錯的信息可以在這裏找到https://docs.python.org/2/distutils/index.html#distutils-index

https://docs.python.org/2/distutils/packageindex.html

+0

我剛剛讀了第一個鏈接的頁面,我不明白在scripts = [...]中指定腳本路徑的目的(或者說效果!)。對用戶有什麼影響? – 2015-04-01 10:32:30

+0

disutil有一個特定的方法來打包可從shell調用的腳本,這是你需要的https://docs.python.org/2/distutils/setupscript.html#installing-scripts 「腳本是包含Python源代碼的文件,旨在從命令行開始,腳本不需要Distutils來做任何非常複雜的事情。「 – lapinkoira 2015-04-01 10:35:04

+0

是的。那麼它會自動安裝爲一個shell命令,然後像'$ mytool --param1 1 --param2 2'一樣使用? – 2015-04-01 10:38:12