我想在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 举报,一经查实,本站将立刻删除。