Python 3.x docker生成错误无法再找到正在执行pip的文件夹
我正在制作一个Python 3.x docker生成错误无法再找到正在执行pip的文件夹,python-3.x,docker,pip,docker-image,docker-build,Python 3.x,Docker,Pip,Docker Image,Docker Build,我正在制作一个Dockerfile以在centos7base上安装python38。在执行pip3命令之前,文件中的所有内容都有效。Dockerile看起来像这样 FROM centos:centos7 RUN RPM_LIST=" \ gcc \ make \ openssl-devel \ bzip2-devel \ libffi-devel" && \ yum install -y $RPM_LIST &
Dockerfile
以在centos7
base上安装python38
。在执行pip3
命令之前,文件中的所有内容都有效。Dockerile看起来像这样
FROM centos:centos7
RUN RPM_LIST=" \
gcc \
make \
openssl-devel \
bzip2-devel \
libffi-devel" && \
yum install -y $RPM_LIST && \
curl -O https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz && \
tar xvf Python-3.8.2.tgz && \
cd Python-3.8.2 && \
./configure && \
make && \
make install && \
rm -rf /Python-3.8.2* && \
yum remove -y $RPM_LIST && \
pip3 install retrying
错误是无法再找到执行pip的文件夹。
我将最后一行更改为运行pip3安装重试
,它开始工作,但它在我的图像
中添加了一个额外的300 MB
,这是我无法做到的
有什么建议,我在这里遗漏了什么,或者有什么替代方法 这就是正在工作的
Dockerfile
的样子
FROM centos:centos7
RUN RPM_LIST=" \
gcc \
make \
openssl-devel \
bzip2-devel \
libffi-devel" && \
yum install -y $RPM_LIST && \
curl -O https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz && \
tar xvf Python-3.8.2.tgz && \
cd Python-3.8.2 && \
./configure && \
make && \
make install && \
pip3 install retrying && \
yum remove -y $RPM_LIST && \
rm -rf /Python-3.8.2*
出于某种原因,从
Python-3.8.2
文件夹调用pip3
命令无效。在这里,我在调用pip3
之后移动了rm
命令。希望这些信息能对其他人有所帮助。我刚刚运行到您正在执行pip的文件夹中,但找不到该文件夹。
我的Dockerfile已经几个月没变了。它不安装pip
它确实会在对需求文件运行pip安装之前强制删除并创建一个文件夹——pip应该在其中安装东西
修复?我只是简单地运行了一次,它成功了。嗯
因此,我在这里发布这篇文章,以防出现一些人们希望收集线索的神秘时间问题
---编辑添加--
此外,昨天我遇到了docker问题,它要求在其首选项中关闭docker的实验性gRPC功能。也许有什么关系
这个错误似乎是它所说的意思:您
cd/Python-3.8.2
,然后rm-rf/Python-3.8.2
仍在该目录中,因此当执行pip3
时,当前目录就不存在了。除非您需要CentOS base,否则使用标准Docker HubPython:3.8
映像可能更容易。大多数应用程序对它们所运行的Linux发行版并不特别敏感。这是我正在制作的自定义CentOS
映像中的一个片段。pip3
调用是在安装之后发生的,该调用应指向usr/local/bin/
。这是我的想法。让我把命令抽一下试试。我怀疑pip
安装得很好;这是你当前的cd
'd目录,它已经消失了。是的,洗牌工作正常,正如你所说的,pip也安装得很好。我将删除文件夹的部分保留到文件的末尾,效果很好。