Python flask:没有名为请求的模块

Sat*_*sal 1 python flask

requests在 Flask 应用程序中使用模块时遇到问题。我有两个文件rest_server.py并且independent.py处于相同的目录级别。该independent.py应用requests模块,并将其正确执行,如果我直接运行它。但是,当我输入independent.pyrest_server.py它显示了以下错误`

import independent
  File "/home/satwik/Desktop/angelhack/independent.py", line 5, in <module>
    import requests
ImportError: No module named requests`
Run Code Online (Sandbox Code Playgroud)

我试过了pip install requests,它显示要求已经满足。此外,我一直在努力,进口requestsrest_server.py,发现它正确地执行了。这是我的代码

**独立.py **

`import json
import os
import sys
import requests
sys.path.append('/home/satwik/Desktop/angelhack/comprehensive_search')
Run Code Online (Sandbox Code Playgroud)

** 休息服务器.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="")`
Run Code Online (Sandbox Code Playgroud)

我应该如何解决这个问题?

Dan*_*esi 5

为什么您会收到“没有名为...的模块”错误

您的两个文件有一个很大的不同:rest_server.py 包含一个shebang行,而 Independent.py 没有。

当你说你直接执行文件时independent.py,你输入python independent.py(我在这里假设,因为你没有指定)。这意味着您正在使用系统 python 解释器执行,它将查找安装在系统级别的模块。在系统范围内,您已经安装了请求模块,通过pip install requests,因此 python 找到它,导入该内容并愉快地运行您的脚本。

rest_server.py相反,当您执行文件时,您可以调用脚本的名称:(./rest_server.py假设权限设置正确)。在这种情况下,第一行#!flask/bin/python(所谓的shebang 行)指示使用不同的 python 解释器,该解释器包含在flask文件夹中,我假设它包含一个虚拟环境。

你得到的是no module named requests因为该模块没有安装在烧瓶虚拟环境中

如何修复错误

要解决这个问题,只需在虚拟环境中安装requests模块

您首先激活虚拟环境,然后安装您需要的模块:

$ source flask/bin/activate
$ pip install requests
Run Code Online (Sandbox Code Playgroud)

然后你可以./rest_server.py再次尝试执行,请求模块应该被正确导入。

有关 shebang 行的更多信息:https ://en.wikipedia.org/wiki/Shebang_(Unix )

有关虚拟环境的更多信息:https : //pypi.python.org/pypi/virtualenv