2013-02-26 12 views
24

Próbuję uruchomić program Pythona, ale pojawia się błądImportError: No module o nazwie argparse

ImportError: No module named argparse 

znalazłem pytanie “argparse Python modules in cli” tutaj na StackOverflow i spróbował pierwszy komentarz, czyli uruchamiając polecenie

python -c "import argparse; print argparse" 

co spowodowało

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

Dla mnie wydaje się, że istnieje Python 2 .7 zainstalowany na maszynie (której nie jestem administratorem) i moduł argparse jest również obecny. Zastanawiam się, dlaczego moduł nie został znaleziony. Na innym komputerze skrypt działa tak, jak powinien. W post, o którym mowa powyżej, jest komentarz, że być może sys.path jest zepsuty. Nie mam zielonego pojęcia, co to oznacza, ani jak mogę zmienić jego wartość. Jakieś pomysły?

+3

Czy używasz Pythona w wersji 2.6 lub wcześniejszej? "Wygląda na to" nie brzmi zbyt przekonująco. Jaki numer wersji widzisz po uruchomieniu tłumacza? 'sys.version'? – Junuxx

+7

Czy skrypt Python, którego używasz, ma shebang ("#!" Na początku), który mówi mu, aby używał innego pliku wykonywalnego w języku Python niż domyślny? –

+1

Będziemy musieli zobaczyć więcej szczegółów na temat samego skryptu. Jaki plik wykonywalny jest używany do jego uruchomienia, na przykład? –

Odpowiedz

0

nie masz moduł zainstalowany w poprawnej wersji python.There jest jednym z dwóch sposobów można naprawić ten

  1. Reinstall Python i moduł
  2. Zmiana ścieżki python są wykazane w jednej z tych linków (osx, windows (nie powinno mieć to zrobić na windows xp Wybrałem ponieważ to właśnie biegnę) linux

Jeden z nich powinien działać, ale jeśli nie spróbuj restartu. UDAĆ SIĘ OD SZCZĘŚCIA !! :)

0

Jeśli plik źródłowy ma taką samą nazwę z argparse i umieścisz go w bieżącym katalogu ze swoimi skryptami, możesz napotkać problem.

+0

Przepraszam, nie rozumiem twojej odpowiedzi w ogóle. Co masz na myśli przez "plik źródłowy ma taką samą nazwę z argpass"? – 8bitjunkie

20

spróbuj zainstalować argparse:

easy_install argparse 
+1

Użytkownik ma już instalację w języku Python z 'argparse' zainstalowanym w'/usr/lib/python2.7'. Dlaczego ponownie zainstalować go po raz drugi? ... –

4

Najprawdopodobniej stosując inną wersję Python ze skryptu niż ten, którego wykonanie w wierszu poleceń. Upewnij się, że skrypt używa tego interpretatora: /usr/lib/python2.7. Ta instalacja ma na pewno numer argparse, co udowodniłeś, importując swój pierwszy wpis.

Dlaczego Twój skrypt może używać innej instalacji Pythona? Może to być wynikiem linii Shebang pierwszej linii skryptu, która może wskazywać na inny interpreter języka Python, który nie ma zainstalowanego modułu argparse.

EDIT: Innym problemem może być to, że skrypt wyczyścić listę sys.path, i byłoby bardzo źle, bo każdy moduły preinstalowane nie byłyby dostępne ...

+0

Dzięki. Zamiast uruchamiać mój skrypt jako "./myscript.py" zmieniłem i zrobiłem "python ./myscript.py" i działało poprawnie, ponieważ używało ono mojego Pythona PATH – mdiehl13

4

W systemie Debian można użyć następujące polecenie, aby zainstalować pakiet argparse:

sudo apt-get install python-argparse 
4

na CentOS I rozwiązać ten z yum install python-argparse. HT do LVA dla poprawnej nazwy pakietu.

Powiązane problemy