У меня есть Python-файл с именемозна .py, который принимает несколько изображений и выполняет 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
,У меня также есть файл require.txt, сгенерированный pipreqs , чтобы пользователи могли устанавливать необходимые пакеты из 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>
из командной строки и получать результаты распознавания после того, как они установят пакеты, перечисленные в файле require.txt.
Теперь мне интересно, есть ли способ, позволяющий пользователям что-то еще делать?как ocr --image <path_to_an_image>
, то есть то же самое задание без указания интерпретатора python
в командной строке.
Я прочитал учебник, Как создавать свои собственные команды командной строки, используяPython? , но он эффективен только локально и не может быть распространен.Я также посмотрел Написание сценария установки , надеясь найти решения для распространения.Однако я не нахожу способ указать внешние пакеты для установки из PyPI.(Или, может быть, я что-то упустил - я новичок в Python.) Кроме того, setup.py не кажется хорошим способом установки пакетов в соответствии с комментариями под принятым ответом What is setup.py?.или не в состоянии включить CLI.