【问题标题】:"ImportError: cannot import name views" on Flask server but in PyCharm worksFlask 服务器上的“ImportError:无法导入名称视图”但在 PyCharm 中有效
【发布时间】:2017-04-01 22:51:40
【问题描述】:

一开始,我是 Flask 的新手。

我收到了一个使用 Flask 框架用 Python 制作的工作项目。它在 PyCharm 中工作。当我将它粘贴到服务器文件并运行 Flask 服务器时(我按照 Flask 站点上的文档进行操作),错误显示:

File "/home/web/app/__init__.py", line 22, in <module>
from app import views, models
ImportError: cannot import name views

这就是 init.py 文件:

1 import os
2 from flask import Flask
3 from flask_sqlalchemy import SQLAlchemy
4 from flask_login import LoginManager
5 from flask_openid import OpenID
6 from config import basedir
7
8 app = Flask(__name__)
9 app.config.from_pyfile('config.py')
10
11 db = SQLAlchemy(app)
12
13 # Imports below help me fixing the database
14 # from app import models
15 # import database_migrate
16
17 lm = LoginManager()
18 lm.init_app(app)
19 lm.login_view = 'login'
20 oid = OpenID(app, os.path.join(basedir, 'tmp'))
21
22 from app import views, models
23
24 app.run(debug=True)

当键入 print(app) 时,它会显示 None。所有模块均已安装。尝试运行简单的 webapp 打印“Hello world”,并且成功了。 Flask 已重新安装了 3 次。 Views 有 from app import app 我在堆栈或任何其他地方都找不到任何解决方案。
提前致谢

【问题讨论】:

  • views.py 到底在哪里?与__init__.py 相同的目录还是在其他目录下?
  • __init__.py的目录相同
  • 有可能,这是路径问题,但您可以将行 from app import views, models 更改为 from . import views, models
  • 谢谢,成功了。

标签: python flask


【解决方案1】:

由于您的views.pymodels.py 在同一目录中,您可以将import 语句替换为:

from . import views, models

正确导入。作为替代方案,您也可以将它们移动到一个目录下,并将该目录名称而不是点。

【讨论】:

    【解决方案2】:

    我从 view_commitpgadmin4/lib/python3.6/site-packages/pgadmin4/pgadmin/browser/__init__.py 导入中删除了它在代码中使用的两行。而这个问题就解决了。

    【讨论】:

      【解决方案3】:

      我在使用 pgadmin 时遇到了类似的问题 - ImportError: cannot import name 'view_commit' from 'flask_security.views'。我改变了 pgAdmin4\v5\web\pgadmin\browser\__init__.py

      from flask_security.views import _security, view_commit, _ctx
      

      from flask_security.views import _security, _commit, _ctx
      

      错误消失了。

      【讨论】:

        猜你喜欢
        • 2019-07-14
        • 2018-08-10
        • 2021-06-28
        • 2019-05-01
        • 1970-01-01
        • 2020-10-02
        • 2022-01-12
        • 1970-01-01
        • 2017-12-11
        相关资源
        最近更新 更多