• 【解决了一个小问题】在某个linux基础镜像中安装python特定的版本


    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!


    在某个基础镜像中,安装了python3.6。但是一个测试需要python3.8的版本,于是通过dockerfile实现了更换新版本的镜像。
    下面直接上Dockerfile的源码:

    FROM centos_xxx:0.0.1   # 源自某个linux的基础镜像
    
    #MAINTAINER 维护者信息
    LABEL MAINTAINER="ahfuzhang"
    
    #ENV PATH /usr/local/bin:$PATH
    ENV LANG C.UTF-8
    
    ENV TZ=Asia/Shanghai
    
    # 为了编译python,这三个库必须要装
    RUN   yum install -y zlib-devel
    RUN   yum install -y libffi-devel
    RUN   yum install -y openssl-devel
    
    RUN wget 'https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tgz'  # 下载python源码
    RUN   mkdir /usr/local/python3 && \
      tar -zxvf Python-3.8.13.tgz && \
      cd Python-3.8.13 && \
      ./configure --prefix=/usr/local/python3 && \
      make && \
      make install && \
      rm -f /usr/bin/python3 && \
      ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3 && \
      cd .. && \
      rm -fdr Python-3.8.13 Python-3.8.13.tgz
    # 以上就是下载,解压,configure, 编译,安装,建立软链接
    
    # 还需要安装pip
    RUN wget 'https://files.pythonhosted.org/packages/4a/25/ec29a23ef38b9456f9965c57a9e1221e6c246d87abbf2a31158799bca201/setuptools-62.3.2.tar.gz'
    RUN tar -zxvf setuptools-62.3.2.tar.gz && \
        cd setuptools-62.3.2 && \
        python3 setup.py install && \
        cd .. && \
        rm -fdr setuptools-62.3.2.tar.gz setuptools-62.3.2
    
    RUN wget 'https://files.pythonhosted.org/packages/4b/b6/0fa7aa968a9fa4ef63a51b3ff0644e59f49dcd7235b3fd6cceb23f202e08/pip-22.1.2.tar.gz'
    RUN tar -zxvf pip-22.1.2.tar.gz && \
        cd pip-22.1.2 && \
        python3 setup.py install && \
        cd .. && \
        rm -fdr pip-22.1.2.tar.gz pip-22.1.2
    
    # 顺带把几个python需要的库也装了
    RUN python3 -m pip install protobuf
    RUN python3 -m pip install gevent
    RUN python3 -m pip install requests
    RUN python3 -m pip install python-snappy
    
    RUN mkdir -p /data
    ADD example/ /data/
    
    WORKDIR /data/
    #ENTRYPOINT ["python", "main.py"]
    

    感觉挺蠢的,但毕竟还是解决了。期待网友给出更好的解决办法,谢谢!

  • 相关阅读:
    程序员,如何从平庸走向理想?
    【Hadoop】HA 场景下访问 HDFS JAVA API Client
    hive 和Hbase的pom文件
    wxpython多线程通信的应用-实现边录音边绘制音谱图
    wxpython多线程间通信
    LeetCode 92. ReverseLinkedII
    pip换源安装
    wxpython绘制音频
    python读取wav文件并播放[pyaudio/wave]
    Python绘制wav文件音频图(静态)[matplotlib/wave]
  • 原文地址:https://www.cnblogs.com/ahfuzhang/p/16340880.html
Copyright © 2020-2023  润新知