Seite 1 von 1

argparse TypeError problem

Verfasst: Donnerstag 10. April 2014, 12:08
von mit
Hallo,

Code: Alles auswählen

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser(
            description='Test')
            
    parser.add_argument('--alpha', default=0.05, type=float,
                     help="Test [default: %default]")

    args = parser.parse_args()


verursacht diese Fehlermeldung:

Code: Alles auswählen

$ python arg.py -h
Traceback (most recent call last):
  File "arg.py", line 10, in <module>
    args = parser.parse_args()
  File "/usr/lib64/python2.7/argparse.py", line 1688, in parse_args
    args, argv = self.parse_known_args(args, namespace)
  File "/usr/lib64/python2.7/argparse.py", line 1720, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/usr/lib64/python2.7/argparse.py", line 1926, in _parse_known_args
    start_index = consume_optional(start_index)
  File "/usr/lib64/python2.7/argparse.py", line 1866, in consume_optional
    take_action(action, args, option_string)
  File "/usr/lib64/python2.7/argparse.py", line 1794, in take_action
    action(self, namespace, argument_values, option_string)
  File "/usr/lib64/python2.7/argparse.py", line 994, in __call__
    parser.print_help()
  File "/usr/lib64/python2.7/argparse.py", line 2327, in print_help
    self._print_message(self.format_help(), file)
  File "/usr/lib64/python2.7/argparse.py", line 2301, in format_help
    return formatter.format_help()
  File "/usr/lib64/python2.7/argparse.py", line 279, in format_help
    help = self._root_section.format_help()
  File "/usr/lib64/python2.7/argparse.py", line 209, in format_help
    func(*args)
  File "/usr/lib64/python2.7/argparse.py", line 209, in format_help
    func(*args)
  File "/usr/lib64/python2.7/argparse.py", line 515, in _format_action
    help_text = self._expand_help(action)
  File "/usr/lib64/python2.7/argparse.py", line 601, in _expand_help
    return self._get_help_string(action) % params
TypeError: %d format: a number is required, not dict
Wie koennte man diese Problem beheben?

Re: argparse TypeError problem

Verfasst: Donnerstag 10. April 2014, 12:19
von BlackJack
@mit: Das Problem behebt man in dem man den Platzhalter richtig schreibt. Im Moment steht da '%d' als Platzhalter für eine Gleitkommazahl, gefolgt von dem sinnlosen Text 'efault'. Was da stehen müsste als Platzhalter ist '%(default)s'.

Re: argparse TypeError problem

Verfasst: Donnerstag 10. April 2014, 13:27
von mit
Danke es funktioniert.