我requests在 Flask 应用程序中使用模块时遇到问题。我有两个文件rest_server.py并且independent.py处于相同的目录级别。该independent.py应用requests模块,并将其正确执行,如果我直接运行它。但是,当我输入independent.py在rest_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,它显示要求已经满足。此外,我一直在努力,进口requests中rest_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)
我应该如何解决这个问题?
您的两个文件有一个很大的不同: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
| 归档时间: |
|
| 查看次数: |
7131 次 |
| 最近记录: |