我在烧瓶应用中使用requests
模块时遇到问题。我在同一目录级别有两个文件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`
我已经尝试了pip install requests
,它表明需求已经满足。我也尝试在requests
中导入rest_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="")`
我该如何解决这个问题?
答案 0 :(得分:4)
你的两个文件有一个很大的不同: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 line )指示使用不同的python解释器,flask
文件夹中包含的解释器,我假设包含虚拟环境。
您获得no module named requests
因为该模块未安装在 flask 虚拟环境中。
要解决此问题,只需在虚拟环境中安装请求模块。
首先激活虚拟环境,然后安装所需的模块:
$ source flask/bin/activate
$ pip install requests
然后您可以再次尝试执行./rest_server.py
,并且应正确导入请求模块。
有关shebang专线的更多信息:https://en.wikipedia.org/wiki/Shebang_(Unix)
有关虚拟环境的更多信息:https://pypi.python.org/pypi/virtualenv
答案 1 :(得分:0)
每当您执行pip install <package>
时,它会将程序包安装到某个位置。将该位置添加到PATH
中提及的Environment Variables
列表中,您的问题就会得到解决。
答案 2 :(得分:0)
嗨,我有同样的问题,但我解决了:
通过此命令log4j.appender.kafkaAppender=org.apache.log4j.RollingFileAppender
log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log
log4j.appender.kafkaAppender.MaxFileSize=50MB
log4j.appender.kafkaAppender.MaxBackupIndex=10
log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n
激活venv env之后
在此环境中,您可以输入. venv/bin/activate
或
在您的项目目录中,您可以打开pyvenv.cfg并打开
pip install requests
到
include-system-site-packages = false
:)