将应用程序构建为Python包时,Flask(connexion)应用程序不会重新加载受监控的extra_files

问题描述 投票:0回答:1

我有一个Python Flask(使用connexion)项目,如果我更改项目中的任何文件,我需要重新加载该项目。 这个项目使用

setup.py
构建成python模块,然后运行。 我尝试在运行项目时使用
extra_files
参数,但这没有帮助。我无法判断 extra_files 是否关心相对路径,因此我设计了代码来提供所有文件的完整路径。还是不行。

我使用

pip install -e .
构建模块,然后运行它
python -m thing.app.main
但该模块不会接受更改。我认为使用链接(使用
-e
可编辑)参数会有帮助,但事实并非如此。

我还应该提到,我在 pyenv 中运行所有这些,因此在运行时运行的路径可能与 pyenv 路径中的路径不同。有问题吗?

这是预期的吗?有什么办法可以使用 extra_files 吗?或者我需要使用看门狗守护程序来监视文件更改?

python flask package watchdog connexion
1个回答
0
投票

我明白了。

  • 我不明白 Flask 看门狗进程已经监视了项目中的所有 .py 文件。我不再尝试再次发送所有 .py 文件和额外的 _files。我只将 yaml/yml 配置文件作为 extra_files 发送。
  • 与它是一个模块或在本地运行无关。
  • Flask 实际上正在正确地重新加载文件,但是在第一次重新加载后就停止了。主要问题是 inotify 中的
    max_user_watches
    设置。我用
    echo 524288 | sudo tee /proc/sys/fs/inotify/max_user_watches
    更改了它,现在工作正常了。
© www.soinside.com 2019 - 2024. All rights reserved.