Flask(connexion)应用在作为Python包构建时不重新加载监控的extra_files

0 投票
1 回答
15 浏览
提问于 2025-04-14 17:37

我有一个用 Python Flask(使用 connexion)做的项目,如果我更改项目中的任何文件,就需要重新加载这个项目。这个项目是通过 setup.py 打包成一个 Python 模块,然后运行的。

我尝试在运行项目时使用 extra_files 参数,但这并没有帮助。我不确定 extra_files 是否需要相对路径,所以我设计了代码来提供所有文件的完整路径,但还是不行。

我用 pip install -e . 来构建这个模块,然后用 python -m thing.app.main 来运行它。但是模块并没有检测到更改。我以为使用链接(也就是 -e 可编辑模式)会有帮助,但结果也没有。

我还应该提到,我是在我的 pyenv 环境中运行这一切,所以在运行时的路径可能会不同,因为它们是在 pyenv 的路径下。这会是个问题吗?

这是正常现象吗?我可以使用 extra_files 吗?还是我需要使用一个监视程序来监控文件的更改?

1 个回答

0

我搞明白了。

  • 我之前不知道Flask的监控程序已经在监视项目中的所有.py文件。所以我不再尝试把所有.py文件再发送一次,也不再加上额外的_files。我只把我的yaml/yml配置文件作为额外文件发送。
  • 这和它是否是模块或本地运行没有关系。
  • Flask其实是正确地重新加载了文件,但在第一次重新加载后就停止了。主要问题出在inotify的max_user_watches设置上。我用echo 524288 | sudo tee /proc/sys/fs/inotify/max_user_watches这个命令修改了它,现在一切正常。

撰写回答