Python 导入本地文件

Python 导入本地文件,python,flask,Python,Flask,我的烧瓶申请有以下问题。我的文件结构如下。内部文件include似乎不起作用。谁能帮我解决这个问题。我对python和flask有点陌生。 app.py、db.py、blacklist.py所有文件都只在根目录中。 =======app.py===== import flask from flask_restful import Api from flask_jwt_extended import JWTManager from db import db from blacklist impo

我的烧瓶申请有以下问题。我的文件结构如下。内部文件include似乎不起作用。谁能帮我解决这个问题。我对python和flask有点陌生。
app.py、db.py、blacklist.py
所有文件都只在根目录中。 =======app.py=====

import flask
from flask_restful import Api
from flask_jwt_extended import JWTManager

from db import db
from blacklist import BLACKLIST

app = flask.Flask(__name__)
app.config["DEBUG"] = True

@app.route('/', methods=['GET'])
def home():
    return "<h1>Api Testing</h1><p>This is just testing endpoint.</p>"

app.run()
==blacklist.py====

BLACKLIST = set()
flask.cli.NoAppException
flask.cli.NoAppException:导入“xxxxxxx.app”时,引发了一个导入错误:Traceback(最近一次调用):文件“/usr/local/lib/python3.7/site packages/flask/cli.py”,第240行,位于locate_app_uu导入_uu(模块名称)文件“/Users/xxxxx/Documents/Vhosts/xxxxx/app.py”,第5行,在from db import db ModuleNotFoundError:没有名为“db”的模块

首先,您应该将您的
app.run()
调用包装在主块中,否则即使您仅导入对象,服务器也会尝试启动(这是Flask CLI对您调用的
Flask run
)。这背后的原因已经涵盖

导入烧瓶
从restful导入Api
从flask_jwt_扩展导入JWTManager
从数据库导入数据库
从黑名单导入黑名单
app=烧瓶。烧瓶(\uuuuu名称\uuuuuuu)
app.config[“DEBUG”]=True
@app.route('/',方法=['GET'])
def home():
return“Api测试这只是测试端点。

” 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': app.run()

这可能会解决您的问题,但是您应该更新您的帖子,以包含其他文件的内容
db.py
blacklist.py
。在您的错误消息中提到了
db
模块,没有它就没有其他功能了。

当您开始使用时,您可以通过保持名称清晰来避免许多问题。在这种情况下,而不是

from db import db
重命名文件,然后执行以下操作

from mydb import db

然后,一旦有了工作,就要一步一步地做,注意什么地方停止工作,并以此为借口来探索Python如何处理名称空间。

我使用terminal解决这个问题,如下所示:

$export FLASK_APP=app
$flask run

由于.py扩展,出现了此问题。

谢谢您的评论。我已经按照你的要求更新了我的帖子。但在更新之后,我仍然会遇到上述错误。我会联合签署@dave-w-smith的建议,使您的模块名称更加独特,Flask可能认为
db
指的不是您的文件。请尝试更改名称,然后再试一次。当我像下面这样运行应用程序时,它会起作用/usr/local/opt/python/bin/python3.7/Users/xxxx/Documents/Vhosts/xxxxx/app.py毫无疑问,在尝试调用包时,您应该在工作目录中(通过提供一个绝对路径,您正在完成相同的事情),因此如果您之前不在
xxxxx
文件夹中,这就是你的问题所在。谢谢你的解释。是的,我终于明白了@谢谢。
from mydb import db
$export FLASK_APP=app
$flask run