Я получаю сообщение об ошибке при попытке запустить некоторый код Python. Ошибка, которую я получаю, заключается в том, что argparse не распознает аргумент: имя программы.
migration.py: error: unrecognized arguments: migration.py
Команда, которую я передаю, в порядке, я считаю:
python migration.py --checkoutdir "C:\Projects\SomeDir\CodeFreeze_20131129" --publishonly
И для контекста, вот код argparse:
parser = argparse.ArgumentParser(description = 'Branch/Publish')
parser.add_argument('-c','--checkoutdir', nargs=1, required=True, help="Directory to checkout branch into, or if it exists, the directory to publish from.")
parser.add_argument('-b','--branchonly', nargs='?', const=True, help="Only create a branch. Checkout branch into --checkoutdir")
parser.add_argument('-p','--publishonly', nargs='?', const=True, help="Only publish from --checkoutdir.")
parser.add_argument('--publishdir', nargs=1, required=False, help="Directory to output publish files", default="C:\Publish")
parser.add_argument('-g','--configuration', nargs=1, required=False, help="Publish configuration to use.")
parser.add_argument('-s','--solutionfile', nargs=1, required=False, help="Solution file in --checkoutdir used for publishing.")
parser.add_argument('-t','--targetProj', nargs=1, required=False, help="Target project to publish. Replace '.' with '_' to make msbuild happy.")
args = parser.parse_args(argv)
У меня сложилось впечатление, что argparse пропустит sys.argv[0]
и будет использовать его в качестве имени программы.