繁体   English   中英

ImportError:尝试在 flask 中没有已知父 package 的相对导入

[英]ImportError: attempted relative import with no known parent package in flask

文件夹结构

.
├── myapp
│   ├── api
│   │   └── routes.py
│   ├── app.py
│   |
│   └── site
│       └── routes.py

app.py 位于 api 文件夹和站点文件夹之外的 myapp 文件夹中

api/routes.py

from flask import Blueprint
api = Blueprint('api',__name__,url_prefix='api')

@api.route('/userlist/')
def user():
  return { 1: 'user1', 2:'user2'}

站点/路由.py

from flask import Blueprint

site = Blueprint('site',__name__)

@site.route('/')
def index():
  return 'Welcome to the Home page'

应用程序.py

from flask import Flask
from .site.routes import site
from .api.routes import api

def create_app():
  app = Flask(__name__)
  app.register_blueprint(api)
  app.register_blueprint(site)
  return app

在终端中使用“flask run”命令运行 flask 应用程序时出现此错误

Traceback (most recent call last):
 File "app.py", line 2, in <module>
  from .site.routes import site
ImportError: attempted relative import with no known parent package

我不明白如何解决这个问题。 提前致谢:)

我相信 Python 认为您的导入点是相对导入(它显然找不到)。

尝试使用以下内容导入:(如果 app.py 在您的 myapp 文件夹上方)

from myapp.site.routes import site

尝试使用以下内容导入:(如果 app.py 在您的 myapp 文件夹中)

from site.routes import site

请在每个文件夹中添加空的__init__.py

然后尝试from myapp.site.routes import site

只需做一个小改动。 旧代码:

api = Blueprint('api',__name__,url_prefix='api')

新代码:

api = Blueprint('api',__name__,url_prefix='/api')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM