web-dev-qa-db-ja.com

ライブラリのインポートに関する問題-「ImportError:____という名前のモジュールがない」

このトピックについて他の多くの質問/回答を調べましたが、役に立ちませんでした。

私は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エラー。何かアドバイスをいただければ幸いです!

10
NeelPatel

PYTHONPATHenvironment変数を変更してみてください。 BASHを使用している場合は、以下が機能するはずです。他のLinuxシェルは、環境変数を割り当てる方法が少し異なります。

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
18
Bmayer0122

問題は、/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を削除し、ディレクトリパスの1つに再度インストールします(たとえば、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(上記のスクリプトの出力に応じて)に入れます。このファイルには、1行が含まれています。

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

    これにより、このディレクトリがデフォルトのパスリストに永続的に追加されます。

  4. (これは、おかしな場所にインストールされた、めったに使用されない非標準のパッケージにのみ推奨されます。これはおそらくあなたのケースではありません)スクリプトの最初(import nltkの前)に次のコードを追加します。

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