Python Argparse“需要以下参数”错误
Posted
技术标签:
【中文标题】Python Argparse“需要以下参数”错误【英文标题】:Python Argparse 'following arguments are required' error 【发布时间】:2019-01-11 16:41:00 【问题描述】:我正在尝试使用 github 存储库,但项目的 argparse 部分存在一些问题。回购开始是这样的:
import markdown, sys, csv, getpass, smtplib, argparse
from email.mime.text import MIMEText
from jinja2 import Template
parser = argparse.ArgumentParser()
parser.add_argument('-m', '--markdown', help='Path to Markdown Template', required=True)
parser.add_argument('-c', '--csv', help='Path to CSV file', required=True)
parser.add_argument('-v', '--verbose', help='Write out emails')
args = parser.parse_args()
我已经输入了 markdown 和 CSV 文件的相对路径和绝对路径......我得到了这个错误的回报:
usage: mass-email.py [-h] -m MARKDOWN -c CSV
mass-email.py: error: the following arguments are required: -m/--markdown, -c/--csv
Process finished with exit code 2
我找不到任何具体的帮助。任何建议将不胜感激。
【问题讨论】:
你是如何运行这个的?您没有显示您实际使用的命令行。 这能回答你的问题吗? Pycharm and sys.argv arguments 【参考方案1】:使用mass-email.py -m /path/to/my/file -c /path/to/csv
调用您的脚本
您的参数由它们的标志定义。如果您希望您的论点是位置的,请不要在它们之前包含破折号。
parser.add_argument('markdown', help='Path to Markdown Template', required=True)
parser.add_argument('csv', help='Path to CSV file', required=True)
【讨论】:
所以没有办法从 IDE 运行它?我正在使用 pycharm 两个选项:见 Greg 的回答或parser.parse_args('-m /path/to/my/file -c /path/to/csv'.split())
【参考方案2】:
似乎您可以从 IDE 运行它而没有提供任何命令行参数。我看到你正在使用 pycharm,所以查看这篇关于将命令行参数传递给 pycharm 运行的帖子:
Pycharm and sys.argv arguments
【讨论】:
以上是关于Python Argparse“需要以下参数”错误的主要内容,如果未能解决你的问题,请参考以下文章