2013-02-26 13 views
24

Sto cercando di eseguire un programma Python, ma l'erroreImportError: No module named argparse

ImportError: No module named argparse 

ho trovato la domanda “argparse Python modules in cli” qui su StackOverflow e ho cercato il primo commento, vale a dire l'esecuzione del comando

python -c "import argparse; print argparse" 

che ha provocato

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

Per me sembra che ci sia Python 2 .7 installato sulla macchina (di cui non sono amministratore) e anche il modulo argparse è presente. Quindi mi chiedo perché il modulo non è stato trovato. Su un'altra macchina lo script funziona come dovrebbe. Nel post di cui sopra, c'è il commento che forse sys.path è rotto. Non ho idea di cosa significhi o di come possa cambiare il suo valore. Qualche idea?

+3

Stai usando Python 2.6 o versioni precedenti? "Sembra" non sembra troppo convincente. Quale numero di versione vedi quando avvii l'interprete? 'Sys.version'? – Junuxx

+7

Lo script Python che stai usando ha uno shebang (un '#!' All'inizio) che gli dice di usare un eseguibile Python diverso da quello predefinito? –

+1

Avremo bisogno di vedere più dettagli sullo script stesso. Ad esempio, quale eseguibile viene utilizzato per eseguirlo? –

risposta

0

non si ha il modulo installato alla versione corretta di python.There è uno dei due modi per risolvere questo

  1. Reinstallare pitone e il modulo
  2. percorsi di cambiamento pitone sono dimostrati in uno di questi link (osx, windows (non si dovrebbe avere a che fare questo su Windows Xp ho scelto perché è quello che ho eseguito), linux

Uno di questi dovrebbe funzionare, ma se non provare a riavviare. PARTIRE OD FORTUNA !! :)

0

Se il file sorgente ha lo stesso nome con argparse e lo si inserisce nella directory corrente con gli script, è possibile che si sia verificato il problema.

+0

Mi dispiace, non capisco la tua risposta. Cosa intendi per "file sorgente ha lo stesso nome con argpass"? – 8bitjunkie

20

provare a installare argparse:

easy_install argparse 
+1

L'utente ha già un'installazione Python con 'argparse' installato in/usr/lib/python2.7'. Perché reinstallarlo una seconda volta? ... –

4

Sei probabilmente utilizzando una versione diversa di Python con lo script di quello che si esegue nella linea di comando. Assicurarsi che lo script stia utilizzando questo interprete: /usr/lib/python2.7. Questa installazione ha sicuramente lo argparse, come hai dimostrato con l'importazione sul tuo primo post.

Perché lo script può utilizzare una diversa installazione Python? Può essere il risultato di una riga di Shebang della prima riga del tuo script che potrebbe indicare un diverso interprete Python che non ha il modulo argparse installato.

EDIT: Un altro problema può essere che lo script pulire la lista sys.path, e sarebbe molto male, perché ogni moduli pre-installato non sarebbero accessibili ...

+0

Grazie. Invece di eseguire il mio script come "./myscript.py" ho cambiato e ho fatto "python ./myscript.py" e ha funzionato correttamente, dal momento che utilizzava il mio PATH's Python – mdiehl13

4

Su un sistema Debian è possibile utilizzare il seguente comando per installare il pacchetto argparse:

sudo apt-get install python-argparse 
4

Su CentOS ho risolto questo con yum install python-argparse. Da HT a LVA per il nome del pacchetto corretto.