web-dev-qa-db-ja.com

「ippを使用してリクエストをインストールしても、「リクエストという名前のモジュールはありません」

リクエストモジュールが適切にインストールされているかどうかをテストしようとしています。しかし、私は次のエラーを受け取ります:

raceback (most recent call last):
  File "/Users/macbookpro/Desktop/test.py", line 1, in <module>
    import requests
ImportError: No module named requests

次のテストスクリプトを実行しようとしたとき:

import requests
print 'test'

しかし、pipを使用してリクエストをインストールしました。pip listコマンドを実行すると、次の結果が得られます。

MBPdeMacBook2:~ macbookpro$ pip list
arrow (0.7.0)
beautifulsoup4 (4.4.1)
classifier (1.6.5)
coursera-dl (0.6.1)
Django (1.8.6)
html5lib (1.0b8)
keyring (9.0)
lxml (3.6.0)
Pillow (3.4.2)
pip (8.0.2)
pyasn1 (0.1.9)
requests (2.14.2)
setuptools (19.4)
six (1.10.0)
urllib3 (1.16)
vboxapi (1.0)
virtualenv (13.1.2)
wheel (0.26.0)

リクエストがインポートされないのはなぜですか?

編集:

MBPdeMacBook2:~ macbookpro$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
MBPdeMacBook2:~ macbookpro$ which pip
/usr/local/bin/pip
MBPdeMacBook2:~ macbookpro$ python --version
Python 2.7.11
MBPdeMacBook2:~ macbookpro$ pip --version
pip 8.0.2 from /usr/local/lib/python2.7/site-packages (python 2.7)
10
mounaim

100%確実ではありませんが、which pythonおよびwhich pipからのパスは、2つのバージョンがインストールされていることを示している可能性があります。 Pythonバージョンは、OS Xに付属していた古いバージョンであり、別のバージョンです。

BrewからPython27(またはさらに優れたPython3)をインストールすることをお勧めします。

Brew 単一のコマンドで をインストールでき、Python27/3をインストールするための別のコマンドもインストールできます。これが完了したら、シェルrcファイルにPATH変数を設定します。これで問題ありません。

私は(brewを介して)Python27をインストールし、私の(作業環境)は次のパスを報告します。

which python: /usr/local/bin/python
which pip: /usr/local/bin/pip

そして

python --version: 2.7.15
pip --version: pip 9.0.1 from /usr/local/lib/python2.7/site-packages (python2.7)
2
OptimusCrime

一般に、virtualenvで作業する習慣を身に付ける必要があります。ドキュメンテーション here が役立つと思います。

仮想環境内にすべての依存関係をインストールする場合、それらの依存関係をインストールしていることを(ほとんどの場合)確信できます。ジョブを実行しているのと同じ環境で。

あなたのケースでは、コマンドラインでコードが存在するディレクトリに移動して実行します

pip install virtualenv
virtualenv my_project
source my_project/bin/activate

Virtualenvがアクティブになったので、次のことができます

pip install requests

Virtualenvにインストールされているものだけが使用可能になります。これにより、システムがクリーンに保たれます。各プロジェクトは独自のvirtualenvを取得する必要があります。つまり、各プロジェクトに必要な依存関係のみを利用できます。このようにして、たとえば、あるプロジェクトにはバージョン1の依存関係をインストールし、別のプロジェクトにはバージョン2をインストールすることができます。彼らは対立しないでしょう。

すべての依存関係をインストールしたら、次を実行します

pip freeze > requirements.txt

保存されたプロジェクトのすべての依存関係のリストを取得します。次にこれらをインストールする必要があるときは、単に実行します

pip install -r requirements.txt

Virtualenvでの作業が完了したら、次を実行します。

deactivate
4
Metropolis

これは、たとえば、pipが実際にpip3であり、pythonが実際にpython2.7である場合に発生します。あなたの場合、どのpipおよびwhich pythonちょうど私に起こりました。

解決策は、pipではなくpip2を実行することでした。状況が逆転した場合は、pip3を使用できます。

0
jeremy_rutman