Hi,
I want to build an app that uses the package ‘SimpleITK’. This is a normal pip package https://pypi.org/project/SimpleITK/ and normally easy to install / makes no problems.
The package is included in my requirements.txt, which looks like this:
numpy
scikit-image
SimpleITK
However, when I execute my code with streamlit run streamlit.py
, I get the following error:
2022-06-07 22:04:16.959 Uncaught app exception
Traceback (most recent call last):
File "/home/k539i/.local/lib/python3.8/site-packages/streamlit/scriptrunner/script_runner.py", line 554, in _run_script
exec(code, module.__dict__)
File "/home/k539i/Documents/projects/pytorch.3D_U-Net_baseline/streamlit.py", line 39, in <module>
prediction, prediction_name = inference()
File "/home/k539i/Documents/projects/pytorch.3D_U-Net_baseline/streamlit.py", line 9, in inference
import SimpleITK as sitk
ModuleNotFoundError: No module named 'SimpleITK'
My streamlit.py
:
import streamlit as st
import os
import time
import numpy as np
from skimage import transform as ski_transform
import SimpleITK as sitk
def inference():
my_bar = st.progress(0)
for percent_complete in range(100):
time.sleep(0.1)
my_bar.progress(percent_complete + 1)
prediction = np.zeros((100, 100, 100), dtype=np.uint8)
prediction = sitk.GetImageFromArray(prediction)
spacing = (0.1, 0.1, 0.1)
prediction.SetSpacing(spacing)
# prediction = None
return prediction, "test"
st.title('Mineral particle segmentation')
# Initialization
if 'key' not in st.session_state:
st.session_state['key'] = 'Init'
# Upload
uploaded_file = st.file_uploader("Upload a an image", type=['.nii.gz'])
if uploaded_file is not None:
file_details = {"FileName": uploaded_file.name, "FileType": uploaded_file.type}
# st.write(file_details)
with open(os.path.join("streamlit_uploaded", uploaded_file.name), "wb") as f:
f.write(uploaded_file.getbuffer())
st.success("Saved image")
st.session_state['key'] = 'Uploaded'
if st.session_state['key'] == 'Uploaded':
st.session_state['key'] = 'Inference'
prediction, prediction_name = inference()
st.download_button(
label="Download prediction",
data=prediction,
file_name='prediction_name.nii.gz',
mime='file',
)
It seems SimpleITK could not be installed even though it is in the requirements.txt. Any ideas?
Best,
Karol