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
調用。
添加回答
舉報