Seite 1 von 1

argparse: einfaches Beipsiel bringt permanent Fehler

Verfasst: Dienstag 2. September 2014, 13:36
von sfx2k
Hallo,

ich stelle gerade von 2.x auf 3.4 um und der Wechsel von optparse nach argparse will mir irgendwie nicht gelingen.
Ein einfaches Beispiel aus der 3.4.1 documentation bringt bei mir nicht die erwartete Ausgabe, sondern einen Fehler.

Beispiel:

Code: Alles auswählen

import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                   help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
                   const=sum, default=max,
                   help='sum the integers (default: find the max)')

args = parser.parse_args()
print(args.accumulate(args.integers))
Diesen Code habe ich in die Datei prog.py gespeichert.
Der Aufruf aus der Console

Code: Alles auswählen

prog.py 1 2 3 4
bringt folgende Ausgabe:
usage: prog.py [-h] [--sum] N [N ...]
prog.py: error: the following arguments are required: N
Laut Hilfe sollte aber
4
das Ergebnis sein.

Ähnliches erhalte ich bei anderen einfachen Beispielen aus dem Web.
Was mache ich falsch?

Re: argparse: einfaches Beipsiel bringt permanent Fehler

Verfasst: Dienstag 2. September 2014, 14:03
von BlackJack
@sfx2k: Das kann ich nicht nachvollziehen. Bei mir funktioniert das Beispiel. Auch mit verschiedenen Python-Versionen (2.7, 3.2, und 3.4).

Re: argparse: einfaches Beipsiel bringt permanent Fehler

Verfasst: Dienstag 2. September 2014, 14:06
von sfx2k
Danke für Deine Antwort.

Mit 2.7 funktioniert es bei mir; mit 3.4 nicht :(
C:\Download>prog.py 1 2 3 4
sys.version_info(major=3, minor=4, micro=1, releaselevel='final', serial=0)
usage: prog.py [-h] [--sum] N [N ...]
prog.py: error: the following arguments are required: N
C:\Download>prog.py 1 2 3 4
sys.version_info(major=2, minor=7, micro=8, releaselevel='final', serial=0)
4
Kann das jemand anderes nachvollziehen oder hat Ideen, was ich ausprobieren kann?

Re: argparse: einfaches Beipsiel bringt permanent Fehler

Verfasst: Dienstag 2. September 2014, 16:41
von cofi
Von mir auch ein WORKSFORME:

Code: Alles auswählen

%>  python3.4 tmp/test.py
usage: test.py [-h] [--sum] N [N ...]
test.py: error: the following arguments are required: N

%>  python3.4 tmp/test.py 1 2 3 4
4

Re: argparse: einfaches Beipsiel bringt permanent Fehler

Verfasst: Mittwoch 3. September 2014, 07:25
von sfx2k
Hallo und danke für Eure Tests.
Nach einer Neuinstallation (erst 2.7, dann 3.4) funktioniert es auch hier.
Keine Ahnung, was sich da verörgelt hatte...