Streamlit应用部署Heroku后因inotify watch限制崩溃求助
解决Heroku上Streamlit应用的inotify监听限制错误
你的应用触发了Linux系统的inotify监听上限,导致进程崩溃。这个问题是Streamlit默认开启的文件热重载功能导致的——它会监听大量文件变化,而Heroku的dyno资源有限,很快就耗尽了inotify的监听配额。
直接按下面的方法解决:
方法1:关闭Streamlit的自动重载
修改Heroku的Procfile启动命令,添加禁用重载的参数:
web: streamlit run app.py --server.enableReload false
或者在你的Python代码里直接设置:
import streamlit as st # 放在代码最开头(set_page_config之后也可) st.set_option('server.enableReload', False) # 你的其他应用代码...
方法2:清理额外的文件监听逻辑
检查你的代码里有没有手动使用watchdog或者其他文件监听库,这些会额外消耗inotify资源,把不需要的监听逻辑删掉。
改完之后重新部署Heroku,应用就能正常启动了。
内容的提问来源于stack exchange,提问作者Jaggernaut
相关产品推荐
相关产品推荐

