You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

用PyInstaller -onedir打包的Streamlit应用在无Python环境运行报错求助

解决PyInstaller打包Streamlit应用后无Python环境下的asyncio NameError问题

针对你遇到的NameError: name 'base_events' is not defined错误,以下是几个可行的解决方法:

  • 显式指定asyncio的隐藏依赖
    PyInstaller自动收集依赖时可能漏了asyncio的核心子模块,打包时用--hidden-import参数强制导入:

    pyinstaller --onedir --hidden-import asyncio.base_events --hidden-import asyncio.protocols --hidden-import asyncio.tasks your_streamlit_app.py
    
  • 升级PyInstaller到最新版本
    旧版PyInstaller对新版Python的asyncio支持可能有问题,先升级再打包:

    pip install --upgrade pyinstaller
    
  • 使用自定义启动脚本打包
    直接打包Streamlit脚本可能存在依赖收集不全的情况,写一个启动脚本(比如run_app.py):

    import streamlit.web.cli as stcli
    import sys
    
    if __name__ == "__main__":
        sys.argv = ["streamlit", "run", "your_main_app.py", "--server.headless=true"]
        stcli.main()
    

    然后打包这个启动脚本,同时加上必要的隐藏依赖:

    pyinstaller --onedir --collect-all streamlit --hidden-import asyncio.base_events run_app.py
    
  • 检查Python版本兼容性
    确保打包时使用的Python版本和目标机器的系统架构匹配(比如不要用32位Python打包给64位系统),避免因架构不兼容导致的模块加载失败。

内容的提问来源于stack exchange,提问作者AstigX Tutorials

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 19:22:07