You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu Docker容器安装Python、Pip及virtualenv时pip未找到问题排查

解决Ubuntu 16.04 Docker容器中pip: not found的问题

咱们先拆解下你遇到的问题,主要有两个核心原因:

1. Dockerfile里的语法错误导致安装流程异常

看你贴的Dockerfile片段,有两处明显的命令错误:

  • RUN apt-get 这一行没有任何参数,执行时必然会触发报错,可能你没留意到这一步的异常;
  • RUN apt-get python3 -y 缺少了install关键字,正确写法应该是RUN apt-get install python3 -y

这些错误会直接导致Python3和pip3的安装不完整,这也是后续找不到pip的潜在诱因之一。

2. Ubuntu 16.04中pippip3的默认差异

即使你正确安装了python3-pip,在Ubuntu 16.04系统里,默认提供的命令是pip3而非pip——因为系统默认预装了Python2,pip命令默认指向Python2的包管理器,而你安装的是Python3对应的pip工具。直接敲pip的话,系统找不到对应命令,自然会抛出not found的错误。

针对问题的修复方案

这里给你两种可行的解决方式,选其一即可:

方式一:直接使用pip3命令

修改Dockerfile里的安装命令,把pip换成pip3,同时修正之前的语法错误:

FROM ubuntu:16.04
RUN apt-get update -y
RUN apt-get install python3 -y
RUN apt-get install python3-pip -y
RUN pip3 install virtualenv

方式二:创建pippip3的软链接

如果你习惯用pip命令,可以在安装完python3-pip后,手动建立软链接让pip指向pip3

FROM ubuntu:16.04
RUN apt-get update -y
RUN apt-get install python3 -y
RUN apt-get install python3-pip -y
RUN ln -s /usr/bin/pip3 /usr/bin/pip
RUN pip install virtualenv

另外,建议你把多个apt-get命令合并成一个,既减少镜像层数,也能避免中间命令失败导致的构建问题:

FROM ubuntu:16.04
RUN apt-get update -y && \
    apt-get install -y python3 python3-pip && \
    ln -s /usr/bin/pip3 /usr/bin/pip && \
    pip install virtualenv

内容的提问来源于stack exchange,提问作者romlym

火山引擎 最新活动