Да, вы передаете их неправильно. Они должны быть в последовательности, как список:
args = parser.parse_args(["./path_to_project", "name_of_project"])
Спасибо Энтони Соттиле за указание на это в комментарии
Причина этой ошибки: parse_args
ожидает, что ее второй аргумент будет пространством имен . Из документации :
ArgumentParser.parse_args(args=None, namespace=None)
Преобразуйте строки аргументов в объекты и назначьте их в качестве атрибутов пространства имен.
Однако, затем вы получите еще одну ошибку:
usage: test.py [-h] -dspath DATASHEET_PATH -pname PROJECT_NAME
test.py: error: the following arguments are required: -dspath/--datasheet-path, -pname/--project-name
, которую вы можете исправить, передав необходимые параметры:
args = parser.parse_args(["-dspath", "./path_to_project", "-pname", "name_of_project"])
или превратив ваши параметры в позиционные аргументы:
parser.add_argument('datasheet_path', help='path to data')
parser.add_argument('project_name', help='name of project')
args = parser.parse_args(["./path_to_project", "name_of_project"])
print(args)
# Namespace(datasheet_path='./path_to_project', project_name='name_of_project')
КСТАТИ type=str
подразумевается, и я изменил имена аргументов, чтобы подчеркивания вместо черточек.