没有名为 streamlit.__main__ 的模块; ‘streamlit’是一个包,不能直接执行
Posted
技术标签:
【中文标题】没有名为 streamlit.__main__ 的模块; ‘streamlit’是一个包,不能直接执行【英文标题】:No module named streamlit.__main__; ‘streamlit’ is a package and cannot be directly executed 【发布时间】:2020-04-08 04:34:36 【问题描述】:当我尝试将 streamlit 部署到 heroku 时,出现以下错误。我该如何解决?
没有名为 streamlit.main 的模块; ‘streamlit’是一个包,不能直接执行
【问题讨论】:
【参考方案1】:streamlit
命令位于您的 virtualenv 的 bin/
文件夹中。看起来pipenv run
没有在该文件夹中查找,而是在找到名为 streamlit 的 包,并尝试执行它。
如果没有看到您的 Heroku 部署的详细信息,很难提供解决此问题的具体建议。但从您的屏幕截图来看,您似乎是在 pipenv 外壳中执行此命令。由于您已经在 shell 中,您不需要使用pipenv run streamlit run ...
来运行streamlit
命令;激活 shell 意味着 streamlit
命令已经在你的 $PATH 上。
当你激活了 shell 时,这样做应该可以代替:
streamlit run iris_eda_app.py
或者,您可以放弃 pipenv
并直接管理您的 virtualenv。我整理了一个可部署到 Heroku 的 Streamlit 应用程序的最小工作示例。它使用普通的requirements.txt
文件而不是Pipfile
:https://github.com/tconkling/streamlit_heroku_example
【讨论】:
【参考方案2】:这对你也有用..python -m streamlit.cli iris_eda_app.py
【讨论】:
【参考方案3】:我试过了,这对我有用:
python -m streamlit.cli run path/to/your/app.py
【讨论】:
以上是关于没有名为 streamlit.__main__ 的模块; ‘streamlit’是一个包,不能直接执行的主要内容,如果未能解决你的问题,请参考以下文章
没有名为 pipreqs.__main__ 的模块; 'pipreqs' 是一个包,不能直接执行
python - 了解 ModuleNotFoundError:没有名为“__main__.xxx”的模块(相对导入)[重复]
pip install 出错:“没有名为 pip.__main__ 的模块”[重复]
在标准输入上使用相对导入的Python 3脚本给出错误:没有名为'__main__.XXX'的模块; '__main__'不是包