2013-01-14 35 views
9

我已經瀏覽了很多關於此主題的其他問題/答案,但無濟於事。導入庫問題 - 「ImportError:No Module named ____」

我下載numpy的和NLTK使用PIP,並根據消息我知道安裝位置是: Requirement already satisfied (use --upgrade to upgrade): nltk in /usr/local/lib/python2.7/site-packages,所以它看起來像它在目錄中安裝2.7版本。

當我運行python我得到Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43),所以這顯然也是2.7版本。

然而,當我嘗試在Python控制檯「NLTK進口」或「進口numpy的」,我總是得到ImportError: No module named nltk錯誤。任何建議將不勝感激!

+1

看來你有多個python安裝,'nltk'安裝在「其他python」中。改變'PYTHONPATH'是一個醜陋的伎倆。看看這個答案,看看這是你的情況:http://stackoverflow.com/a/12206868/565999 –

回答

17

嘗試更改PYTHONPATH環境變量。如果你正在使用BASH,那麼下面應該可以工作。其他Linux shell在分配環境變量方面略有不同。

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

工作就像一個魅力,謝謝! – NeelPatel

+0

我不得不導出.../dist-packages以使nltk和其他一些可通過python終端訪問的軟件包。感謝這個提示。 –

+0

改變PYTHONPATH還曾python34 C:\ Python34 \ LIB \站點包(路徑被顯示在sys.path中通過進口SYS 爲PTH給出的列表:打印PTH但不知何故,沒有工作,直到我編輯的PYTHONPATH – JinSnow

9

的問題是,/usr/local/lib/python2.7/site-packages是不是在默認路徑列表。爲了驗證這一點,運行以下命令:

import sys 
for pth in sys.path: 
    print pth 

您將獲得搜索模塊的目錄列表。正如你可能不會有/usr/local/lib/python2.7/site-packages在列表中,您有以下選擇:

  1. 刪除nltk和的目錄路徑之一(注重新安裝它,比如Debian的,它可能是/usr/local/lib/python2.7/dist-packages

  2. 在每次運行時,設置PYTHONPATH變量:export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages(你可以在$HOME/.bashrc文件中把這個命令)

  3. 將一個文件local.pth/usr/lib/python2.7/site-packages/usr/lib/python2.7/dist-packages (取決於上面腳本的輸出),其中包含一行代碼:

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

    這會將此目錄永久添加到默認路徑列表中。

  4. (這一個建議僅適用於安裝在一些奇怪的位置,一些很少使用的非標準封裝,這可能不是你的情況下),在你的腳本(import nltk之前)的開頭添加以下代碼:

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