2 回答
TA贡献2036条经验 获得超8个赞
您正在混合调用“系统” pip/python和虚拟环境中的副本。
# In the "system" Python
RUN pip install setuptools wheel
# In the virtual environment
RUN venv/bin/pip install -r requirements.txt
由于 Docker 映像已经位于与任何特定主机系统的 Python 安装分开的隔离环境中,因此通常将内容安装到映像内的“系统”Python 中,而不使用虚拟环境。删除创建虚拟环境的行,并使用 justpip或pythonovervenv/bin/...替代方案。
# Remove this line
# RUN python -m venv venv
# Use "pip", not "venv/bin/pip"
RUN pip install --upgrade pip
RUN pip install setuptools wheel
RUN pip install -r requirements.txt
TA贡献1818条经验 获得超7个赞
您的环境无权访问wheel
. 您应该能够通过添加以下行来解决此问题:
RUN pip install wheel
在尝试安装需求文件之前,将其添加到您的 dockerfile 中。
编辑:我错过了这里使用的虚拟环境。我认为在这种情况下使用虚拟环境是不必要的,除非OP 使用他们的 docker 实例并行运行多个 python 应用程序。有一些使用此模式的案例,尽管这里似乎不是这种情况。因此,我的建议是完全取消venv
并简单地在 docker 实例 python 安装中安装所有依赖项,这会将每个venv/bin/pip
调用转换为简单的pip
调用。
添加回答
举报