[英]How can I activate conda venv in Dockerfile? (pip not found)
[英]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.