Flask应用程序在启动时会引发“ImportError:没有名为Utils的模块”

时间:2015-07-19 15:04:20

标签: python python-2.7 flask

我创建了以下简单的Flask应用程序。我尝试运行时得到document.getElementById("items").innerHTML += "<li>" + items[i] + "</li>"; 。我有一个名为ImportError: No module named Utils的文件,如果我重命名它,错误就会消失。 email.py返回2.7。是什么导致错误?当我重命名模块时为什么会消失?

python --version
from flask import Flask
from flask import request

app=Flask(__name__)

@app.route('/',methods=['GET','POST'])
def home():
return '<h1>home</h1>'
@app.route('/signin',methods=['GET'])
def signin_form():
    return '''<form action="/signin" method="post">
    <p><input name="username"></p>
    <p><input name=password"> type="password"></p>
    <p><button type="submit">Sign In</button></p>
    </form>'''

@app.route('/signin',methods=['POST'])
def signin():

   if request.form['username']=='admin' and request.form['password']=='password':
        return '<h3>hello ,admin!<h3>'
    return '<h3>bad username or password</h3>'

if __name__=='__main__':
    app.run()

2 个答案:

答案 0 :(得分:0)

好的,看起来您的脚本名为email.py存在命名冲突。 Python中有一个名为email的包,模块为Utils。当Python搜索此包时,它会首先在其路径中找到您的脚本,因此它会抓取它并尝试导入Utils模块,但无法找到它。只需将您的自定义脚本重命名为email1.py,Email.py或email.py以外的任何内容,您应该没问题。

答案 1 :(得分:0)

我在工作区中放置了一个socket.py文件,并且发生了与您相同的问题。更改文件名以防止模块冲突应解决此问题。