Сборка / запуск исполняемого файла Python в терминале, для которого требуются аргументы строки cmd с использованием Py2app - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть файл .py, который представляет собой отдельную программу, которая принимает два аргумента командной строки, используя argparse

Следуют следующие youtube vid :

ap = argparse.ArgumentParser()
    ap.add_argument("-1", "--Image", required=True, help="Image to be trained on")
    ap.add_argument("-2", "--SaveName", required=True, help="Name of file to be saved")
    args = vars(ap.parse_args())
    image = cv2.imread(args["Image"])
    fileName = (args["SaveName"])

Ниже приведен мой файл setup.py для py2app

from setuptools import setup

APP = ['DataTraining.py']
DATA_FILES=[]
OPTIONS = {
    'argv_emulation':True,
    'packages':['certifi'],
}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app':OPTIONS},
    setup_requires=['py2app ']

    )

. Я могу встроить программу в приложения, но когда я пытаюсь запустить ее в терминале с аргументами командной строки, которые я указал, в ней указываются входные данные.в качестве нераспознанных опций.

Это мое терминальное выполнение без аргументов, которое открывается, но сразу завершается неудачей.

open DataTraining.app/

Это мое выполнение терминала с аргументами строки cmd, которые не выполняются:

open DataTraining.app/ --Image /Users/chrisradford/Documents/School/Masters/RA/Classifier/ImageSets/Orig_11.png --SaveName /Users/chrisradford/Documents/School/Masters/RA/Classifier/Python/Orig_11_TrainingAttempt

Есть ли способ ввести два моих желаемых аргумента для выполнения моей программы с терминалом?Кроме того, если у меня будет печать моей программы без графического интерфейса, она пойдет в терминал или вылетит?

1 Ответ

0 голосов
/ 11 сентября 2018

Поскольку вы указали оба аргумента, как требуется, для вашего приложения вполне допустимо вызвать исключение в первом случае. Об этом позаботится модуль arg_parse.

Как только у вас есть все необходимые аргументы, синтаксический анализ завершается успешно, но вы вызываете функцию vars, определения которой я не вижу. Это может быть проблемой, пожалуйста, предоставьте минимальный, но полный исходный код для его воспроизведения.

Кроме того, какие сообщения об ошибках вы получаете? В большинстве случаев там есть хорошая подсказка!

...