ImportError:libgthread-2.0.so.0:无法打开共享对象文件:使用 Docker 容器导入 cv2 时没有此类文件或目录

Posted

技术标签:

【中文标题】ImportError:libgthread-2.0.so.0:无法打开共享对象文件:使用 Docker 容器导入 cv2 时没有此类文件或目录【英文标题】:ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory when importing cv2 using Docker container 【发布时间】:2020-10-28 08:19:11 【问题描述】:

我正在本地机器上构建一个带有 streamlit、OpenCV 和 Torch 的 Web 应用程序。整个项目进展顺利,直到我构建了一个 Docker 文件并将其传输到我的谷歌云平台。谁能告诉我这里到底出了什么问题?

这是我的 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'

还有 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

【问题讨论】:

【参考方案1】:

也许,您应该在pip 之前运行以下命令。

apt update
apt-get install -y libglib2.0-0 libsm6 libxrender1 libxext6

【讨论】:

你的意思是我应该单独做还是用dockerfile做?

以上是关于ImportError:libgthread-2.0.so.0:无法打开共享对象文件:使用 Docker 容器导入 cv2 时没有此类文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:无法导入名称发现

Django 'ImportError: 无法导入名称 url'

ImportError:无法导入名称 VarianceThreshold

橙色3:ImportError:无法导入名称'_variable'

ImportError:无法导入名称“WebClient”

ImportError:无法导入名称'password_reset'