Flask(connexion)应用在作为Python包构建时不重新加载监控的extra_files
我有一个用 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
这个命令修改了它,现在一切正常。