没有名为streamlit .__ main__的模块; “ streamlit”是一个程序包,不能直接执行

时间:2019-12-15 13:27:08

标签: streamlit

当我尝试将streamlit部署到heroku时,出现以下错误。如何解决?

没有名为streamlit.main的模块; “ streamlit”是一个程序包,不能直接执行

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

streamlit命令位于您的virtualenv的bin/文件夹中。似乎pipenv run不在该文件夹中,而是在查找名为streamlit的 package 并尝试执行该软件包。

在没有看到Heroku部署外观的任何细节的情况下,很难提供具体建议来解决此问题。但是从您的屏幕截图来看,好像您是在pipenv shell中执行此命令的。由于您已经在Shell中,因此无需使用pipenv run streamlit run ...来运行streamlit命令;激活外壳程序意味着streamlit命令将已经在$ PATH上。

激活外壳后,应该执行以下操作:

streamlit run iris_eda_app.py

或者,您可以放弃pipenv并直接管理您的virtualenv。我整理了一个可部署到Heroku的Streamlit应用程序的最小工作示例。它使用普通的requirements.txt文件而不是Pipfilehttps://github.com/tconkling/streamlit_heroku_example

答案 1 :(得分:0)

这对你也有用.. python -m streamlit.cli iris_eda_app.py