我有一个.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 回答
由于您根据需要指定了两个参数,因此您的应用程序可以在第一种情况下引发异常 . arg_parse模块负责这一点 .
一旦你提供了所有必需的参数,解析成功,但你调用一个我看不到定义的函数
vars
. 这可能是一个问题,请提供最小但完整的源代码来重现它 .另外,您收到的错误消息是什么?大部分时间都有一个很好的线索!