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

Shinyapps.io部署含reticulate与sklearn的Shiny应用遇模块未找到问题

解决shinyapps.io部署reticulate+sklearn时的ModuleNotFoundError问题

以下是针对你遇到问题的排查和解决步骤:

  • 强制指定virtualenv环境
    在global.R开头明确指定要使用的virtualenv路径,避免shinyapps.io默认调用系统Python环境:

    library(reticulate)
    # 替换成你创建的virtualenv名称,shinyapps.io上的默认路径为~/virtualenvs/你的环境名
    use_virtualenv("~/virtualenvs/your_env", required = TRUE)
    

    也可以直接指定Python可执行文件路径,进一步锁定环境:

    use_python("~/virtualenvs/your_env/bin/python", required = TRUE)
    
  • 检查requirements.txt的包名正确性
    PyPI上scikit-learn的正式包名是scikit-learn,而非sklearn,这是常见的出错点。确保项目根目录的requirements.txt里正确声明依赖:

    scikit-learn==1.3.0  # 指定和本地一致的版本
    numpy>=1.24.0        # 按需添加其他关联依赖
    

    本地导出依赖时可使用pip freeze > requirements.txt,注意剔除无关包。

  • 调整Python脚本的导入顺序
    避免直接导入sklearn子模块,先加载主模块再导入子模块,确保环境加载完整:

    import sklearn  # 先加载主模块
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.metrics import accuracy_score
    
  • 本地验证环境一致性
    本地启动Shiny应用前,确保激活了对应的virtualenv,运行应用确认无报错,保证本地依赖版本和部署环境一致。

  • 核对shinyapps.io部署日志
    查看完整部署日志,确认是否有Activating virtualenv: ~/virtualenvs/your_env类提示,同时检查sklearn的安装日志是否对应到该virtualenv下,而非系统环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:50:32