2013-02-26 10 views
24

Ich versuche, ein Python-Programm laufen, aber den FehlerImport: Kein Modul namens argparse

ImportError: No module named argparse 

ich die Frage gefunden “argparse Python modules in cli” hier auf Stackoverflow und versuchte den ersten Kommentar, dh Ausführen des Befehls

python -c "import argparse; print argparse" 
erhalten

die

<module 'argparse' from '/usr/lib/python2.7/argparse.pyc'> 

Für mich in

Folge scheint es, wie es ist Python 2 .7 auf dem Rechner installiert (von dem ich kein Administrator bin) und das Modul argparse ist ebenfalls vorhanden. Ich frage mich also, warum das Modul nicht gefunden wird. Auf einem anderen Rechner läuft das Skript wie es soll. In dem oben genannten Post gibt es den Kommentar, dass vielleicht sys.path gebrochen ist. Ich habe keine Ahnung, was das bedeutet oder wie ich seinen Wert ändern kann. Irgendwelche Ideen?

+3

Verwenden Sie Python 2.6 oder früher? "Scheint wie" klingt nicht zu überzeugend. Welche Versionsnummer sehen Sie, wenn Sie den Interpreter starten? 'sys.version'? – Junuxx

+7

Hat das Python-Skript, das Sie verwenden, einen Shebang (ein '#!' Am Anfang davon), das es anweist, eine andere Python-Programmdatei als die Standarddatei zu verwenden? –

+1

Wir müssen mehr Details zum Skript selbst sehen. Mit welcher ausführbaren Datei wird es beispielsweise ausgeführt? –

Antwort

0

Sie nicht das Modul auf die richtige Version von python.There installiert haben eine von zwei Arten ist, dass Sie diese

  1. Neu installieren Python und das Modul
  2. ändern Python Pfade demonstriert an einem beheben dieser Links (osx, windows (Sie sollten dies nicht auf Windows zu tun haben, ich xp ausgewählt, weil das ist, was ich laufen), linux

Eines davon sollte funktionieren, aber wenn es nicht dem Neustart nicht versuchen. GEHEN OD GLÜCK !! :)

0

Wenn Ihre Quelldatei denselben Namen mit argparse hat und Sie sie in das aktuelle Verzeichnis mit Ihren Skripten einfügen, kann das Problem auftreten.

+0

Es tut mir leid, dass ich deine Antwort überhaupt nicht verstehe. Was meinst du mit "Quelldatei hat den gleichen Namen mit Argpass"? – 8bitjunkie

20

Try argparse Installation:

easy_install argparse 
+1

Der Benutzer hat bereits eine Python-Installation mit 'argparse' installiert in'/usr/lib/python2.7'. Warum es ein zweites Mal neu installieren? ... –

4

Du bist wahrscheinlich mit einer anderen Version von Python mit Ihrem Skript als die, die Sie in der Befehlszeile ausführen. Stellen Sie sicher, dass das Skript diesen Interpreter verwendet: /usr/lib/python2.7. Diese Installation hat sicher argparse, wie Sie es mit dem Import auf Ihrem ersten Post bewiesen haben.

Warum kann Ihr Skript eine andere Python-Installation verwenden? Es kann das Ergebnis einer Shebang-Zeile der ersten Zeile Ihres Skripts sein, die auf einen anderen Python-Interpreter zeigen konnte, auf dem das argparse-Modul nicht installiert ist.

EDIT: Ein weiteres Problem kann sein, dass Ihr Skript die sys.path Liste reinigen, und es wäre sehr schlecht, weil alle Module nicht zugänglich sein vorinstalliert würden ...

+0

Danke. Anstatt mein Skript als "./myscript.py" auszuführen, habe ich "python ./myscript.py" geändert und "python ./myscript.py" ausgeführt und es wurde korrekt ausgeführt, da es PATHs von PATH verwendet – mdiehl13

4

Auf einem Debian-System, das Sie verwenden können, die Befehl nach dem argparse Paket zu installieren:

sudo apt-get install python-argparse 
4

auf CentOS löste ich dies mit yum install python-argparse. HT zu LVA für den richtigen Paketnamen.