我在我的 Flask 应用程序中使用 requests
模块时遇到问题。我在同一目录级别有两个文件 rest_server.py
和 independent.py
。 independent.py
使用了 requests
模块,如果我直接运行它,它会正确执行。但是当我在 rest_server.py
中导入 independent.py
时,它显示以下错误
`
import independent
File "/home/satwik/Desktop/angelhack/independent.py", line 5, in <module>
import requests
ImportError: No module named requests`
我已经尝试了 pip install requests
,它显示要求已经满足。我还尝试在 rest_server.py
中导入 requests
并发现它也能正确执行。
这是我的代码
**独立.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="")`
我应该如何解决这个问题?
最佳答案
为什么会出现“没有名为...的模块”错误
你的两个文件有一个很大的不同:rest_server.py 包含一个shebang 行,而 independent.py 没有。
当你说你直接执行文件independent.py
时,你键入python independent.py
(我在这里假设,因为你没有指定)。这意味着您正在使用系统 python 解释器执行,它将查找在系统级别安装的模块。在系统范围内,您通过 pip install requests
安装了 requests 模块,因此 python 找到它,导入它并愉快地运行您的脚本。
当您执行文件 rest_server.py
时,您可以调用脚本的名称:./rest_server.py
(假设权限设置正确)。在这种情况下,第一行 #!flask/bin/python
(所谓的 shebang 行)指示使用不同的 python 解释器,该解释器包含在 flask
文件夹,我假设它包含一个虚拟环境。
您得到 no module named requests
因为该模块没有安装在 flask 虚拟环境中。
如何修复错误
要解决此问题,只需在虚拟环境中安装requests 模块。
您首先激活虚拟环境,然后安装您需要的模块:
$ source flask/bin/activate
$ pip install requests
然后您可以尝试再次执行 ./rest_server.py
并且应该正确导入 requests 模块。
有关 shebang 行的更多信息:https://en.wikipedia.org/wiki/Shebang_(Unix)
有关虚拟环境的更多信息:https://pypi.python.org/pypi/virtualenv
关于 python flask : No module named requests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38282310/