作者jimmytzeng (jimmytseng)
看板Python
标题Re: [问题] 如何把Python scripts包成可散布的CLI?
时间Wed Jun 20 19:56:57 2018
※ 引述《clsmbstu (missing)》之铭言:
: 假设我有一档案recognize.py如下:
: ```python
: import argparse
: import json
: from multiprocessing import Pool
: from ocr_tools import Organize
: organizer = Organize()
: parser = argparse.ArgumentParser(description="Recognize the contents on a la
b
: parser.add_argument("-i", "--image", nargs="*", required=True, help="path to
i
: args = parser.parse_args()
: if __name__ == "__main__":
: with Pool() as p:
: report_set = json.dumps({"report_set": p.map(organizer.finalize_repo
rt
: print(report_set)
: ```
: 其中,`ocr_tools`是一个我自己写的大型模组,我已经帮它准备了requirements.txt
:
: numpy==1.14.3
: regex==2018.2.21
: requests==2.18.4
: pandas==0.23.0
: opencv_python==3.4.1.15
: scikit_learn==0.19.1
: 所以,使用者如果拿到我的程式码并安装好所需套件,
: 他就可以运行`python recognize.py -i <path_to_image>`。
: 而我好奇的是:有没有可能更进一步,让使用者只要透过某些步骤(安装?),
: 完成之後,他就可以做到例如:`ocr -i <path_to_image>`?
: 概念上就像git或是homebrew,使用者甚至不需要知道它们是用什麽语言写的。
: 我在网路上有找到一篇教学:
: How Do I Make My Own Command-Line Commands Using Python?
: https://dbader.org/blog/how-to-make-command-line-commands-with-python
: 但是他这里面的方法只在本地有效,没有提到要怎麽散布。
: 谢谢!
若要写成cli,可以使用神器click, 这个是写flask这个有名的team做出来的。
若要写成可发布的,就是要研究setuptools跟怎麽写setup.py。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.217.132.142
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1529495818.A.7B5.html
1F:→ uranusjr: There is no team, only Armin 06/20 20:16
2F:推 jlhc: click 看起来是比 argparse 来的更加的简洁好用 06/20 23:02
3F:推 adrianshum: 感谢 Click 推介 06/22 23:00