【问题标题】:How to auto reload python module without restarting app?如何在不重新启动应用程序的情况下自动重新加载 python 模块?
【发布时间】:2019-08-04 07:49:49
【问题描述】:

我有兴趣在运行应用程序后调整 python 文件。假设我们有一个脚本:

import time

while True:
    time.sleep(10)
    print(2)

我运行它,所以它每 10 秒打印一次数字 2。 我希望能够将2 更改为5,这样我就不需要重新运行脚本,但输出更改为5.

这个机制在Django中实现了,文件被编辑后,服务器上的数据被重新加载。

编辑:

import time
from importlib import reload
import data

while True:
    reload(data)
    print(data.some_data)
    time.sleep(1)

这样的事情可以完成这项工作,但也许有更好的方法来实现这种行为?

【问题讨论】:

  • 这与 django 有什么特别的关系?
  • 它不需要与 Django 做任何事情。 Django 是在脚本运行时重新加载文件的示例,仅此而已。

标签: python django reload


【解决方案1】:

您可以创建一个单独的文件来管理动态内容。然后从该文件中导入您需要的数据。

数据.py

some_data = 10

脚本.py

import time
from .data import some_data

while True:
    time.sleep(10)
    print(some_data)

然后您可以将 data.py 中的值编辑为您想要的任何值,而无需重新启动脚本。

【讨论】:

  • 不起作用。它以某种方式引导我找到可行的解决方案,但仍然很丑
猜你喜欢
  • 2019-12-15
  • 2017-08-13
  • 2014-07-21
  • 1970-01-01
  • 2015-05-09
  • 1970-01-01
  • 2012-05-13
  • 2014-03-11
  • 1970-01-01
相关资源
最近更新 更多