argparse: einfaches Beipsiel bringt permanent Fehler

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sfx2k
User
Beiträge: 54
Registriert: Dienstag 2. September 2014, 13:29

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?
BlackJack

@sfx2k: Das kann ich nicht nachvollziehen. Bei mir funktioniert das Beispiel. Auch mit verschiedenen Python-Versionen (2.7, 3.2, und 3.4).
sfx2k
User
Beiträge: 54
Registriert: Dienstag 2. September 2014, 13:29

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?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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
sfx2k
User
Beiträge: 54
Registriert: Dienstag 2. September 2014, 13:29

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...
Antworten