2016-07-09 9 views
-1

私のフラスコのアプリにrequestsモジュールを使用する際に問題があります。私は同じディレクトリレベルでrest_server.pyindependent.pyという2つのファイルを持っています。 independent.pyrequestsモジュールを使用し、直接実行すると正しく実行されます。私はそれが次のエラー `Pythonフラスコ:モジュールのリクエストがありません

import independent 
    File "/home/satwik/Desktop/angelhack/independent.py", line 5, in <module> 
    import requests 
ImportError: No module named requests` 

を示しrest_server.pyindependent.pyをインポートするときしかし、私はpip install requestsを試したのだが、要件がすでに満足を示しています。またrequestsrest_server.pyにインポートしようとしましたが、正しく実行されています。 は、ここに私のコードです

** independent.py **

`import json 
import os 
import sys 
import requests 
sys.path.append('/home/satwik/Desktop/angelhack/comprehensive_search') 

** rest_server.py **

`#!flask/bin/python 
import six 
from flask import Flask, jsonify, abort, request, make_response, url_for 
from flask.ext.httpauth import HTTPBasicAuth 
import independent 

app = Flask(__name__, static_url_path="")` 

どのように私はこの問題を解決する必要がありますか?あなたは「何のモジュールという名前のない...」エラーが出るのはなぜ

答えて

2

あなたの2つのファイルが一つの大きな違いがあります。independent.pyはそうではないrest_server.pyは、シェバングラインを含んでいます。

あなたが直接ファイルindependent.pyを実行言うとき、あなたは(あなたがそれを指定しなかったので、私は、ここで仮定している)python independent.pyを入力します。これは、システムレベルでインストールされたモジュールを探すシステムPythonインタプリタで実行していることを意味します。システム全体で要求モジュールがインストールされており、pip install requestsを経由しているので、pythonがそれを見つけて、その物をインポートして、うれしくスクリプトを実行します。

ファイルrest_server.pyを実行するときに、スクリプトの名前を./rest_server.py(適切なアクセス権設定があるものとします)という名前で呼び出すことができます。この場合、最初の行#!flask/bin/python(いわゆるシバン線)は、flaskフォルダに含まれている別のPythonインタプリタを使用するように指示しています。

そのモジュールがフラスコ仮想環境内にインストールされていないので、あなたはno module named requestsを取得します。あなただけ仮想環境内部要求モジュールをインストールし、問題を解決するには、エラー

を修正するにはどうすればよい

あなたが最初の仮想環境をアクティブにして、あなたが必要なモジュールをインストール:次に、あなたが再び./rest_server.pyを実行しようとしてモジュールが正常にインポートする必要が要求することができます

$ source flask/bin/activate 
$ pip install requests 

を。仮想環境の詳細についてhttps://en.wikipedia.org/wiki/Shebang_(Unix)

:シェバング行の詳細について

https://pypi.python.org/pypi/virtualenv

0

あなたがpip install <package>を行うたびに、それは特定の場所にパッケージをインストールします。その場所をEnvironment Variablesに記載されているPATHのリストに追加すると、問題は解決されます。

関連する問題