微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 在Docker中安装和使用pip和virtualenv

我想在Docker容器中安装Python,Pip和virtualenv,这是Ubuntu,我通过Dockerfile创建图像:

FROM ubuntu:16.04

RUN apt-get update -y

RUN apt-get

RUN apt-get python3 -y

RUN apt-get install python3-pip -y

RUN pip install virtualenv
...

当它到了这里时,它出现了“/ bin / sh:1:pip:not found”,但是在安装过程中没有显示异常,这是不是意味着我没有安装pip对吧?或者在使用pip命令之前我应该​​做什么?

然后我像这样更改了Dockerfile:

...
RUN apt-get python3 -y

RUN apt-get install python3-pip -y

RUN apt-get install python3-virtualenv -y 

RUN virtualenv --no-stie-packages -p /path/python3 py3env
...

但它仍然说/ bin / sh:1:virtualenv:未找到,here is it

我还安装了git,git clone命令运行正常,可以使用.我哪里错了,或者我该怎么办?

解决方法:

在基于Debian的平台上,包括Ubuntu,the command installed by python3-pip is called pip3,以便它与任何系统安装的Python 2及其pip和平共存.

有点类似,virtualenv命令不是由包python3-virtualenv安装的;得到那个,you need apt-get install -y virtualenv.

请注意,venv包含在Python 3标准库中,因此您根本不需要安装任何东西.

python3 -m venv newenv

你为什么要在Docker里面想要一个virtualenv呢? (在某些情况下它是有意义的,但在绝大多数情况下,您希望Docker容器尽可能简单,这意味着,以root身份安装所有内容,并在需要更新某些内容时重建整个容器.)

另外,您通常希望最小化RUN语句的数量.在调试时创建多个层可能是可以防御的,但是什么都不做的层肯定是浪费.也许还发现apt-get可以一次安装多个包.

RUN apt-get update -y && \
    apt-get install -y python3 python3-pip && \
    ...

和&&只要其中一个命令失败,就会导致整个RUN序列失败.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐