簡體   English   中英

"如何在 Dockerfile 中的 venv 中升級 pip?"

[英]How can I upgrade pip inside a venv inside a Dockerfile?

在跑步的時候

$ sudo docker build -t myproj:tag 。

我被消息擊中

You are using pip version 10.0.1, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

並考慮到最近偶爾會出現錯誤的微妙之處:

"/usr/bin/pip" "from pip import main" "ImportError: cannot import .."

我寧願屈服並確實升級。

所以我在 DockerFile 中添加了pip upgrade命令,DockerFile構建之后,因為重要的pip是 venv 內部的那個(我猜對了嗎?)。 所以我的 Dockerfile 現在有這個:

...
RUN python -m venv venv
RUN pip install --upgrade pip
...

但這樣做並不能避免“您正在使用 pip 10.x”消息。 我錯過了什么?

更新

雖然是一個有希望的建議,但

RUN source venv/bin/activate
RUN pip install --upgrade pip

也不

RUN source venv/bin/activate
RUN python -m pip install --upgrade pip

消除“您正在使用 pip 版本 10.0.1,...”消息。

對此最簡單的答案就是不要打擾 Docker 映像中的虛擬環境。 虛擬環境為您提供了一個隔離的文件系統空間,其中包含一組與系統安裝不沖突的私有 Python 包,但 Docker 映像也是如此。 你可以在 Docker 鏡像中使用系統 pip 就可以了。

FROM python:3.7
RUN pip install --upgrade pip
WORKDIR /usr/src/app
COPY . .
RUN pip install .
CMD ["myscript"]

在您可以使用您的虛擬環境venv之前,您需要使用

在 Windows 上:

venv\Scripts\activate.bat

在 Unix 或 MacOS 上,運行:

source venv/bin/activate

請注意,venv 是您的環境的名稱。 您使用RUN python -m venv venv創建了這個環境。 我強烈建議使用其他名稱。

然后你可以用python -m pip install --upgrade pip升級

通過在 Docker 容器中創建虛擬環境后

RUN python -m venv venv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM