私はpipを使用してさまざまなモジュールを正常にインストールし、それらは
pip list
といった:
beautifulsoup4 (4.4.1)
requests (2.10.0)
Scrapy (1.1.0)
ただし、インポートしようとするたびに
import beautifulsoup4
/import bs4
またはimport Scrapy
またはimport requests
次のエラーが表示されます。
$ python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named requests
Update:起動した場合python正しいsite-packagesディレクトリにいるとき
$ pwd
/usr/local/lib/python2.7/site-packages
$ python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
>>> import requests
>>> import bs4
>>> import scrapy
その後、動作します。これは、ターミナルに直接書き込む場合の問題を解決します。ただし、通常の使用方法となるfile.py内で機能させる方法についてはわかりません。
私の知る限り、Python2.7のみがインストールされています。
File.pyをローカルフォルダーに保存している場合。これには、たとえば
import requests
from bs4 import BeautifulSoup
私が試みるとき
python file.py
同じエラーが発生します。
リストの他のモジュールでも同様です。私はpipがそれらをPythonが読んでいないディレクトリにインストールしていると思いますが、私が読んだことによると、それは正しいものです。
これらはすべてここにインストールされます。
/usr/local/lib/python2.7/site-packages
Padraic Cunninghamが要求する出力:
$ which -a pip
/usr/local/bin/pip
$ which -a python
/usr/bin/python
/usr/local/bin/python
Leovpが要求する出力:
$ pip -V
pip 8.1.2 from /usr/local/lib/python2.7/site-packages (python 2.7)
次のスレッドを確認しましたが、残念ながら問題の解決に役立ちませんでした。
問題が何であるかのアイデア?
あなたの問題はさまざまな理由が原因かもしれないので、ここにそれらのいくつかをリストしました:
探していたリンク: https://pythonhosted.org/setuptools/setuptools.html#development-mode
pip
が1つのバージョンで、pythonインタプリタは別のものです。そのため、同じバージョンのpythonを使用してパッケージをインストールおよび使用していることを確認してください。
エイリアスを使用してこれを修正できます
まず、シェルエイリアスを設定します。
alias python=/usr/local/bin/python3
次に、プロンプトでそれを入力するか、~/.bashrc
これにより、端末からpythonを開くたびに正しいバージョンが開きます。
ここでうまくいった答えは、基本的に質問のコメントで説明されているものです。ただし、明確で適切に構成された回答として説明することは有益だと思いました。
強調されたように、問題は、pipがインストールされているインタープリターを使用していなかったことです。コマンドwhich
は、pipがモジュールをインストールした場所を示します。
$ which -a pip
/usr/local/bin/pip
そして、異なるpythonバージョンがあった場所:
$ which -a python
/usr/bin/python
/usr/local/bin/python
つまり、私のシステム/デフォルトpythonは
/usr/bin/python
pipは
/usr/local/bin/python
したがって、/usr/bin/python
インタープリターが開始されたため、python
と入力したときにインストールしたものをインポートできませんでした。
インストールするモジュールの宛先を指定して、pipを再度インストールします。これはsystem/default pythonの宛先でなければなりません。
これは2つのステップで行われました。
get-pip.py
のダウンロード次のコマンドでインストールする
Sudo /usr/bin/python get-pip.py
Sudo
がないとエラーが発生し、pipをインストールできなかったことに注意してください。
同様の問題を修正しました。
背景を説明するために、brew install python
を実行してpip
とともにhomebrew
をインストールします。このコマンドを実行することによる1つの欠点は、python2とpython3の両方をインストールすることです(場合によっては不利ではないかもしれません)。
pip install scrapy
しかし、import scrapy
をしようとすると、ImportError: No module named scrapy
と不平を言いました。
私の解決策: run brew doctor
、リンクの破損を報告する必要があり、brew link python
を実行するよう求められます。エラーが発生する場合がありますが、プロンプトの指示に従って移動してくださいbrew link python
を正常に実行した後、すべてが動作するはずです。
他の人に役立つ場合に備えて、これを追加しています。私にとって問題は、Anacondaを実行していて、pip3がAnacondaがリンクされているディレクトリとは異なるディレクトリにインストールしていたことでした。これを修正するには、conda deactivate
。 conda activate
端末で_brew doctor
_を実行すると、次のような警告が表示されます。
_Warning: The following directories do not exist:
/usr/local/sbin
You should create these directories and change their ownership to your account.
Sudo mkdir -p /usr/local/sbin
Sudo chown -R $(whoami) /usr/local/sbin
_
ターミナルで_Sudo mkdir -p /usr/local/sbin
_と入力してEnterキーを押し、Sudo chown -R $(whoami) /usr/local/sbin
と入力してからpythonを実行し、モジュールのインポートを再試行します。