2013-01-14 16 views
9

Sprawdziłem wiele innych pytań/odpowiedzi na ten temat, ale bezskutecznie.Importowanie bibliotek Problem - "ImportError: Brak modułu o nazwie ____"

Pobrałem numpy i nltk używając pip i bazując na komunikatach Wiem, że lokalizacja instalacji to: Requirement already satisfied (use --upgrade to upgrade): nltk in /usr/local/lib/python2.7/site-packages, więc wygląda na to, że instaluje się w katalogu dla wersji 2.7.

Po uruchomieniu python otrzymuję Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43), więc jest to wyraźnie wersja 2.7.

Jednak, gdy próbuję "importować nltk" lub "import numpy" w konsoli Pythona, zawsze pojawia się błąd ImportError: No module named nltk. Każda rada byłaby bardzo doceniona!

+1

wydaje masz wiele instalacji Pythona, a 'nltk' jest zainstalowany w„drugiej Pythona”. Zmiana 'PYTHONPATH' jest brzydką sztuczką. Spójrz na tę odpowiedź i sprawdź, czy to twoja sytuacja: http://stackoverflow.com/a/12206868/565999 –

Odpowiedz

17

Spróbuj zmienić zmienną środowiskową PYTHONPATH. Jeśli korzystasz z BASH, poniższe informacje powinny działać. Inne powłoki systemu Linux będą nieco różnić się sposobem przypisywania zmiennych środowiskowych.

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages 
+2

Pracował jak urok, dzięki! – NeelPatel

+0

Musiałem wyeksportować pakiety .../dist, aby nltk i niektóre inne pakiety były dostępne za pośrednictwem terminala Pythona. Dzięki za tę podpowiedź. –

+0

zmiana PYTHONPATH działała również python34 C: \ Python34 \ Lib \ site-packages (ścieżka była wyświetlana na liście przez import sys dla pth w sys.path: print pth ale jakoś nie działała dopóki nie edytowałem pythonpath – JinSnow

9

Problemem jest to, że /usr/local/lib/python2.7/site-packages nie jest w domyślnej listy ścieżek. W celu zweryfikowania tego, uruchom następujące polecenia:

import sys 
for pth in sys.path: 
    print pth 

Dostaniesz listę katalogów szukał modułów. Jak zapewne nie będzie mieć /usr/local/lib/python2.7/site-packages na liście, masz następujące opcje:

  1. Usuń nltk i zainstalować go ponownie w jednej ze ścieżek katalogów (uwaga, że ​​na przykład na Debianie, może być /usr/local/lib/python2.7/dist-packages

    .
  2. na każdym biegu, należy ustawić zmienną PYTHONPATH. export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages (można umieścić to polecenie w pliku $HOME/.bashrc)

  3. Umieść plik local.pth w /usr/lib/python2.7/site-packages lub /usr/lib/python2.7/dist-packages (W zależności od mocy powyższego skryptu), który zawiera pojedynczą linię:

    /usr/local/lib/python2.7/site-packages 
    

    Spowoduje to dodanie do tego katalogu do domyślnej listy ścieżek stałe.

  4. (Ten jeden jest zalecane tylko dla niektórych rzadko używanych pakietów niestandardowych zainstalowanych w jakimś dziwnym miejscu, które nie jest chyba danym przypadku) na początku skryptu (przed import nltk) dodaj następujący kod:

    import sys 
    sys.path.append("/usr/local/lib/python2.7/site-packages")