首页 文章

在需要使用Py2app的cmd行参数的终端中构建/运行Python Executable

提问于
浏览
0

我有一个.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"])

以下是我的py2app的setup.py文件

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 ']

    )

我可以将程序构建到应用程序中,但是当我尝试使用命令行参数在终端中运行它时,我指定它将输入声明为无法识别的选项 .

这是我的终端执行没有args打开但立即失败 .

open DataTraining.app/

这是我的终端执行,cmd行args失败:

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

有没有办法引入我想要的两个参数来执行我的终端程序?另外,如果我的程序打印没有GUI,它会转到终端还是会崩溃?

1 回答

  • 0

    由于您根据需要指定了两个参数,因此您的应用程序可以在第一种情况下引发异常 . arg_parse模块负责这一点 .

    一旦你提供了所有必需的参数,解析成功,但你调用一个我看不到定义的函数 vars . 这可能是一个问题,请提供最小但完整的源代码来重现它 .

    另外,您收到的错误消息是什么?大部分时间都有一个很好的线索!

相关问题