Flask:无法导入名称“app”

2023-12-07

尝试运行我的 python 文件updater.py通过 SSH 连接到服务器并每隔几个设定的时间间隔运行一些命令。我正在使用 APScheduler 来运行该函数update_printer() from __init__.py。最初我得到了一个working outside of application context error但有人建议我只导入应用程序__init__.py。然而,效果并不那么好。我不断收到cannot import name 'app' error.

app.py

from queue_app import app

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

__init__.py

from flask import Flask, render_template
from apscheduler.schedulers.background import BackgroundScheduler
from queue_app.updater import update_printer
app = Flask(__name__)
app.config.from_object('config')

@app.before_first_request
def init():
    sched = BackgroundScheduler()
    sched.start()
    sched.add_job(update_printer, 'interval', seconds=10)

@app.route('/')
def index():
    return render_template('index.html')

更新程序.py

import paramiko
import json
from queue_app import app

def update_printer():
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(app.config['SSH_SERVER'], username = app.config['SSH_USERNAME'], password = app.config['SSH_PASSWORD'])

...

文件结构

queue/
   app.py
   config.py
   queue_app/
      __init__.py
      updater.py

Error

Traceback (most recent call last):
  File "app.py", line 1, in <module>
    from queue_app import app
  File "/Users/name/queue/queue_app/__init__.py", line 3, in <module>
    from queue_app.updater import update_printer
  File "/Users/name/queue/queue_app/updater.py", line 3, in <module>
    from queue_app import app
ImportError: cannot import name 'app'

如果从 APScheduler 运行,我需要做什么才能从 updater.py 访问 app.config 并避免“在应用程序上下文之外工作错误”?


这是一个循环依赖,当你导入时updater在你的__init__.py文件。在我的烧瓶设置中,app创建于app.py.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flask:无法导入名称“app” 的相关文章

  • python的_random是什么?

    如果你打开random py看看它是如何工作的 它的类Random子类 random Random import random class Random random Random Random number generator base
  • Python 将列表中的字符串转换为数字

    我遇到了以下错误消息 以 10 为基数的 int 的文字无效 2 2 外部用单引号括起来 内部用双引号括起来 该数据位于primes列出使用print primes 0 样本数据在primes list 2 3 5 7 The primes
  • 对 Python DataFrame 进行子集化

    我正在从 R 过渡到 Python 我刚刚开始使用 Pandas 我有一个可以很好地子集化的 R 代码 k1 lt subset data Product p id Month lt mn Year yr select c Time Pro
  • Python 按文件夹模块导入

    我有一个目录结构 example py templates init py a py b py a py and b py只有一个类 名称与文件相同 因为它们是猎豹模板 纯粹出于风格原因 我希望能够在中导入和使用这些类example py像
  • 地图与星图的性能?

    我试图对两个序列进行纯Python 没有外部依赖 逐元素比较 我的第一个解决方案是 list map operator eq seq1 seq2 然后我发现starmap函数来自itertools 这看起来和我很相似 但事实证明 在最坏的情
  • SMTPAuthenticationError: (535, b'5.7.8 用户名和密码在 Django 生产中不被接受?

    我在 Heroku 上部署了一个 Django 应用程序 在其中一节中 我使用 SMTP Gmail 设置向用户发送电子邮件 当我在本地运行项目时 电子邮件发送成功 但在 Heroku 上部署的项目上却发送失败 我在 Stackoverfl
  • WTForms 中的小数字段舍入

    我有一个包含价格小数字段的表单 如下所示 from flask ext wtf import Form import wtforms from wtforms validators import DataRequired from deci
  • Weasyprint 在调用 write_pdf 时获得未定义的属性:“AttributeError:‘PosixPath’对象没有属性‘read_text’”

    我正在 ubuntu 18 04 上运行 weasyprint 项目 并尝试创建一个 pdf 当我尝试设置页脚图像时 问题就开始了 我正在 python 3 6 7 上运行 这是我调用 weasyprint 的代码 import sys i
  • 肥皂服务的良好框架是什么?

    我正在寻找一个用于肥皂的好框架service 我更喜欢使用Pythonic框架 但是在查看了soaplib rpclib 太不稳定 SOAPy 不适用于2 7 和ZSI 太 令人困惑 之后 我不确定这是否可能 我对使用另一种语言感到满意 尽
  • 如何最好地将包含列表或元组的 Pandas 列提取到多个列中[重复]

    这个问题在这里已经有答案了 我不小心用错误重复的链接关闭了这个问题 这是正确的 Pandas 将列表的列拆分为多列 https stackoverflow com questions 35491274 pandas split column
  • 字母表中的加密和解密 - Python GCSE

    我目前正在尝试为学校编写一个程序 以便加密和解密输入的消息 我需要加密或解密的消息仅在字母表中 没有其他符号或密钥 例如 使用消息车加密输入的偏移量为 5 我希望它输出 afs 有人可以帮忙吗 这是我目前的代码 def find offse
  • 在 Ubuntu 上使用 Python 获取显示器分辨率

    对于 Ubuntu win32api 中是否有与 GetSystemMetrics 相当的代码 我需要获取显示器的宽度和高度 以像素为单位 我可以建议一些可以使用的方法 不过我还没有使用过 xlib 版本 1 xlib Python 程序的
  • 图像堆栈的最大强度投影

    我正在尝试重新创建该功能 max array 3 来自 MatLab 它可以获取 N 个图像的 300x300px 图像堆栈 我在这里说 图像 因为我正在处理图像 实际上这只是一个大的双数组 300x300xN 并创建一个 300x300
  • 不重复的Python组合

    我有一个数字列表 我想从中进行组合 如果我有清单 t 2 2 2 2 4 c list itertools combinations t 4 结果是 2 2 2 2 2 2 2 4 2 2 2 4 2 2 2 4 2 2 2 4 但我想得到
  • Tornado websocket handler , self.close() 正在关闭连接而不触发 on_close() 方法

    我是 python stackoverflow tornado 的新手 所以请耐心等待 纠正我 我正在使用龙卷风开发实时应用程序 当我在 Websocket 处理程序类中调用 self close 时 on close 方法不会启动 这次我
  • 安排 Asyncio 任务每 X 秒执行一次?

    我正在尝试创建一个 python 不和谐机器人 它将每隔 X 秒检查一次活跃会员 并根据会员的在线时间奖励积分 我正在使用 asyncio 来处理聊天命令 这一切都正常 我的问题是找到一种方法来安排每隔 X 秒异步检查一次活动成员 我已经阅
  • python 函数返回 javascript date.getTime()

    我正在尝试创建一个简单的 python 函数 它将返回与 javascript 相同的值new Date getTime 方法 如所写here http www w3schools com js js dates asp javascrip
  • 用于桌面数据库应用程序的 Python 框架

    是否有一个框架可以为Python开发桌面数据库应用程序 一些带有CRUD屏幕的屏幕 我正在寻找类似于 Windows 窗体的东西 能够将 TextField Combos 和其他 UI 隐喻与datasets连接到关系数据库例如 MySQL
  • 连接运算符 + 或 ,

    var1 abc var2 xyz print literal var1 var2 literalabcxyz print literal var1 var2 literal abc xyz 除了带有 的自动空格之外 两者有什么区别 哪个通
  • Python列表问题

    我在使用 python 列表时遇到问题 简化版本是 mylist1 some items in a list mylist2 mylist1 mylist1 pop i mylist insert i item print mylist1

随机推荐

  • 如何返回 DocumentSnapShot 作为方法的结果?

    采用 DocumentSnapShot DocumentsnapShot 参数的自定义对象 也是来自 Firebase 的内部对象 它检索快照并将值设置为我的自定义模型也有其参数 DocumentSnapShot 文档napShot 但是
  • 在 iOS 应用程序中自动连接到 BLE 设备

    我正在编写一个 iOS 应用程序 它将使用低功耗蓝牙 BLE 与设备进行通信 当我连接的设备超出范围时 我的应用程序将收到断开连接事件 但当设备返回范围时 我没有收到任何连接事件 请建议任何检测设备何时返回范围的方法 当您收到设备不再可达的
  • Simba Mongodb ODBC 驱动程序:返回的数据与预期数据长度不匹配

    我们使用 Simba Mongodb ODBC 驱动程序连接到 Mongo 数据库并进行 sql 查询 我使用 psql 在 Linux 上测试了连接 并且能够执行查询 当我的客户尝试通过 Microsoft SQL Server Mana
  • Django迁移依赖项引用不存在的父节点

    我在 Django 迁移方面遇到问题 我收到此错误 django db migrations exceptions NodeNotFoundError 迁移user 0050 merge 20170523 1254依赖项引用不存在的父节点
  • jsRender - 如何从嵌套模板调用外部模板

    我对 jsRender 真的很陌生 才几天 我只能说 我喜欢它 我发现真正有用的一篇文章是this one作者 约翰 帕帕 到目前为止 我已经能够做我想做的事 同一页面中的所有内容 但约翰在他的文章中说了一件事 如果模板是在同一页面的标签内
  • 使用QT Creator如何将执行级别设置为requireAdministrator

    基本上我需要能够编辑需要管理员权限才能编辑的文件 我知道在 Visual Studio 中为此使用了清单文件 但我知道 QT 没有这些 您可以将清单与 Qt 应用程序一起使用 但您必须半手动执行此操作 这篇博文使用 QtCreator 嵌入
  • 如何使用活动识别豁免从后台启动foregroundService?

    Android 12 添加了从后台启动 ForegroundService 的限制 并且该文档还提到了一些豁免 其中之一是 您的应用收到与地理围栏或活动识别转换相关的事件 我找不到任何文档来详细讨论它 这是我的问题 我是否必须在收到此事件后
  • 如何在 Django 中为用户模型创建密码字段?

    我对 Django 完全陌生 在我的 models py 中 我想要一个用户模型来表示登录应用程序的用户 我知道如何拥有 fname lname 电子邮件和用户名等字段 例如 只需添加 first name models CharField
  • 更新 Google Slides API 中的链接表

    我看到有一种方法可以更新幻灯片中的链接图表 RefreshSheetsChartRequest 但在我的演示文稿中 我从 Google 表格粘贴了表格 这些表格链接到电子表格中的数据 我可以通过单击幻灯片 UI 中的更新按钮来手动更新这些内
  • Android Studio:意外的顶级异常:

    我该如何解决这个错误 错误 任务 app dexDebug 执行失败 com android ide common process ProcessException org gradle process internal ExecExcep
  • 将 WPF 组合框绑定到用户设置属性

    我在 WPF 中有一个组合框 其中有 4 个静态值
  • Xgboost (GPU) 在预测时崩溃

    我在 Python 中使用 XGBoost GPU 版本 每当我尝试运行 predict 时它都会崩溃 它适用于较小的数据集 但对于我当前的问题 它不起作用 train final shape test final shape 631761
  • 执行存储在变量中的数学运算

    我有3个这样的变量 第一个 2 第二 5 操作 如何以编程方式将这个数学问题的解决方案分配给 answer 变量 我尝试过 eval 但这不起作用 eval 对于这样的事情应该工作得很好 请记住 eval 返回 NULL 除非您告诉它返回某
  • Microsoft Visual C++ 2008 Redistributable Package 可以自由重新分发吗

    我计划使用 py2exe 制作一个用 Python 2 6 开发的应用程序 看来我的应用程序需要 VC 可再发行组件 http www py2exe org index cgi Tutorial Step5 我已阅读本教程和可再发行许可协议
  • 将一个文件共享/挂载到 Pod 中的最佳方式是什么?

    我正在考虑使用秘密来挂载单个文件 但似乎您只能挂载会覆盖所有其他内容的目录 如何在不安装目录的情况下共享单个配置文件 例如 您有一个包含 2 个配置文件的 configmap kubectl create configmap config
  • 如何在 JavaScript 中的 Y 和 Z 范围内随机生成 X 个数字?

    例如我想生成5个unique1 到 10 之间的数字 结果应该是 1 到 10 之间的 5 个数字 例如 2 3 4 8 10 用您的值范围填充数组 打乱数组 选择前 5 个元素 如果范围非常大 并且您想要的值的数量非常小 例如 范围 1
  • CDI 在同一实例中调用拦截器注释方法

    这是我的 DAO 实现 我将加载整个表并在内存中缓存一段时间 ApplicationScoped public class DataAccessFacade Inject private EntityManager em CacheOutp
  • 如何向 spritekit 中的节点添加滑动手势

    我正在尝试向节点添加滑动手势 以便当用户滑动它时 它会离开屏幕 但我不断收到SIGABRT错误 Terminating app due to uncaught exception NSInvalidArgumentException rea
  • 如果我不随包分发 pytest 测试,如何组织它们?

    As pytest 文档中建议 我设置我的包的目的不是not将我的测试与我的包一起分发 setup py mypkg init py mypkg appmodule py tests test app py 但我对如何确保这些测试在存在时正
  • Flask:无法导入名称“app”

    尝试运行我的 python 文件updater py通过 SSH 连接到服务器并每隔几个设定的时间间隔运行一些命令 我正在使用 APScheduler 来运行该函数update printer from init py 最初我得到了一个wo