Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x docker生成错误无法再找到正在执行pip的文件夹_Python 3.x_Docker_Pip_Docker Image_Docker Build - Fatal编程技术网

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 Hub
Python:3.8
映像可能更容易。大多数应用程序对它们所运行的Linux发行版并不特别敏感。这是我正在制作的自定义
CentOS
映像中的一个片段。
pip3
调用是在安装之后发生的,该调用应指向
usr/local/bin/
。这是我的想法。让我把命令抽一下试试。我怀疑
pip
安装得很好;这是你当前的
cd
'd目录,它已经消失了。是的,洗牌工作正常,正如你所说的,pip也安装得很好。我将删除文件夹的部分保留到文件的末尾,效果很好。