Reputation: 1681
I was builting a web app with streamlit, OpenCV and Torch on local machine. The whole project went well until I built a Docker file and was about to transport it to my Google Cloud Platform. Can anyone tell me what is really going wrong here?
Here is my Dockerfile:
FROM pytorch/pytorch:latest
RUN pip install virtualenv
ENV VIRTUAL_ENV=/venv
RUN virtualenv venv -p python3
ENV PATH="VIRTUAL_ENV/bin:$PATH"
WORKDIR /app
ADD . /app
# Install dependencies
RUN pip install -r requirements.txt
# copying all files over
COPY . /app
# Expose port
ENV PORT 8501
# cmd to launch app when container is run
CMD streamlit run app.py
# streamlit-specific commands for config
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8
RUN mkdir -p /root/.streamlit
RUN bash -c 'echo -e "\
[general]\n\
email = \"\"\n\
" > /root/.streamlit/credentials.toml'
RUN bash -c 'echo -e "\
[server]\n\
enableCORS = false\n\
" > /root/.streamlit/config.toml'
And requirements.txt:
albumentations==0.4.5
matplotlib==3.2.2
numpy==1.19.0
opencv-python==4.1.0.25
# opencv-python-headless==4.2.0.34
pandas==1.0.5
Pillow==7.1.2
scipy==1.5.0
streamlit==0.62.0
Upvotes: 22
Views: 36920
Reputation: 21
On openSUSE, this fixed the issue:
sudo zypper install libgthread-2_0-0 libgthread-2_0-0-32bit
Upvotes: 2
Reputation: 1166
In my case (on NixOS) it was enough to install the headless version:
pip uninstall opencv-python
pip install opencv-python-headless
Upvotes: 1
Reputation: 443
Anyone encountering this issue and wanting to install a minimum number of external packages, this solved using open-cv
and torch
in one docker image for me:
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install\
libgl1\
libgl1-mesa-glx \
libglib2.0-0 -y && \
rm -rf /var/lib/apt/lists/*
P.S.: Notice how the combined apt-get update and apt-get install safe one layer.
P.S.S.: As huyu mentioned: include this in your Dockerfile before the pip
command.
Edit: Thanks @gardner-bickford for suggesting to remove apt-cache to further decrease image size.
Upvotes: 8
Reputation: 51
I had similar error when trying to run the fresh install of Anki flashcard program. Searched/installed missing "libgthread-2" via YaST2 Package Manager.
Upvotes: 0
Reputation: 454
Maybe, you should run following command before pip
.
apt update
apt-get install -y libglib2.0-0 libsm6 libxrender1 libxext6
Upvotes: 43