我有一个名为recogn.py的Python文件,它接受多个图像并使用多个进程执行OCR,其中ocr_tools
是一个大型自编写模块:
import argparse
import json
from multiprocessing import Pool
from ocr_tools import Organize
organizer = Organize()
parser = argparse.ArgumentParser(description="Recognize the contents on a lab report and return a json string.")
parser.add_argument("-i", "--image", nargs="*", required=True, help="path to input image file")
args = parser.parse_args()
if __name__ == "__main__":
with Pool() as p:
report_set = json.dumps({"report_set": p.map(organizer.finalize_report, args.image)}, ensure_ascii=False)
print(report_set)
对于ocr_tools
,我还有pipreqs生成的requirements.txt,供用户从PyPI安装所需的软件包:
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 --image <path_to_an_image>
并在安装requirements.txt中列出的软件包后获得OCR结果。
现在我想知道是否有办法进一步让用户能够执行ocr --image <path_to_an_image>
之类的操作,即在命令行中没有指定python
解释器的情况下执行相同的工作。
我已经阅读了一个教程How Do I Make My Own Command-Line Commands Using Python?,但它似乎只在本地有效,无法分发。我也浏览了Writing the Setup Script,希望找到分发的解决方案。但是,我没有找到一种方法来指定要从PyPI安装的外部包。 (或者我可能错过了一些东西 - 我是Python的初学者。)此外,setup.py似乎既不是根据comments under the accepted answer of What is setup.py?安装软件包的好方法,也不能启用CLI。