I have some code to deploy model in streamlit. I just upload all file to github and share it in streamlit app. Here is some code
if str(course) == 'Multi-layer Perceptron':
file = open("MLP.pkl",'rb')
if str(course) == 'Logistic classifier':
file = open("log_classifier.pkl",'rb')
if str(course) == 'K-neighbour':
file = open("Kneighbor_classifier.pkl",'rb')
f str(course) == 'Naivebayes':
file = open("naivebayes_classifier.pkl",'rb')
model = pickle.load(f)
It runs perfect in local. But in streamlit it has some bug
ModuleNotFoundError: This app has encountered an error. The original error message is redacted to prevent data leaks. Full error details have been recorded in the logs.
Traceback:
File "/home/appuser/venv/lib/python3.7/site-packages/streamlit/script_runner.py", line 354, in _run_script
exec(code, module.__dict__)
File "/app/nm-khdl/streamlit_app.py", line 45, in <module>
model = pickle.load(file)
It's the first time that I work on streamlit. So, thank you for reading! Have a nice day!
I had the same issue. As I saved my model built it in scikit-learn, the pickle file depends on scikit-learn for its structure.
Additionally, I didn't import sckilearn in the python file for the web app streamlit. Therefore, using pipreqs ./
to generate pip requirements.txt
file based on imports of this project did not include sklearn.
Thus, I had to include manually it inside of requirements.txt
: scikit-learn==0.24.2
numpy==1.22.0
pandas==1.3.4
plotly==5.5.0
streamlit==1.3.0
scikit-learn==0.24.2