docker基于centos7镜像安装python3.7.9

下载centos7镜像

docker pull centos:centos7

启动容器centos-python-3.7

docker run -itd --name centos-python-3.7 -p 60021:22 --privileged centos:centos7 /usr/sbin/init

进入容器

docker exec -it centos-python-3.7 /bin/bash

centos7环境下安装python3.7.9

在Linux的home目录下创建一个python3目录

mkdir /home/python3

切换到python3目录

cd /home/python3

下载安装包到python3目录中(也可通过在网站下载安装包手动拖入到指定目录)

wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
【bash: wget: command not found】 yum -y install wget

将安装包解压到当前目录

tar xvf Python-3.7.9.tgz

提前安装编译时所需要的依赖包,避免中途出错

yum -y install vim unzip net-tools
yum -y install wget && yum -y install bzip2
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum -y install libglvnd-glx
yum -y install gcc gcc-c++

安装前先修改python配置文件Setup.dist和Setup(python2),否则使用过程中可能会出现No module named '_ssl’错误
进入文件所在目录

cd /home/python3/Python-3.7.9/Modules

修改Setup.dist文件

vi Setup.dist
【在非编辑状态下 esc键,输入:set number,用来展示行数】
编辑状态 i 保存退出 esc键 :wq

进入Python-3.7.9目录

cd …

指定python3安装路径/usr/local/python3.7

./configure --prefix=/usr/local/python3.7

编译+安装

make
make install

添加软链接(相当于设置桌面快捷方式)
添加python3软链接到/usr/bin/python3

ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/python3

添加pip3软链接到/usr/bin/pip3

ln -s /usr/local/python3.7/bin/pip3 /usr/bin/pip3

查看是否安装成功

python3 -V

其他问题
  1. 正确升级pip3的姿势: pip3 install --upgrade pip
  2. bash: make: command not found yum -y install gcc automake autoconf libtool make
  3. Docker常用指令: 个人网站-Docker常用指令
  4. centos8环境下 报错 centos8 Cannot prepare internal mirrorlist: No URLs in mirrorlist
    Failed to download metadata for repo ‘AppStream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist
    原因:
    2022 年 1 月 31 日,Cent OS团队终于从官方镜像中移除了 CentOS 8 的所有软件包。CentOS 8 已于 2021 年 12 月 31 日结束生命周期。
    官方临时镜像地址从 mirror.centos.org 移到 https://vault.centos.org
    解决方案:
    root用户执行以下命令解决
    sed -i -e “s|mirrorlist=|#mirrorlist=|g” /etc/yum.repos.d/CentOS-*

sed -i -e “s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g” /etc/yum.repos.d/CentOS-*

下载单个包

python3 -m pip download -d /home/wheels scipy==1.7.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

下载多个包(为了离线安装)

python3 -m pip download -d /home/wheels -r /home/requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

docker cp命令 从容器中复制文件到本地

docker cp centos-python-3.7:/home/wheels /data
docker cp也可以从本地copy文件到容器中
docker cp /data centos-python-3.7:/home/wheels

离线安装python的库及依赖库

使用本地索引依赖包,pip提供了可以在本地目录搜索依赖包的选项,这样安装的好处是以前安装过的依赖包不会更新,避免出现升级带来的bug。

pip install --no-index --find-links=./wheels -r requirements.txt

需要安装的库及其版本放在了requirements.txt中,下载的离线包放在了项目的wheels下

镜像数据源

清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/

你可能感兴趣的:(python,docker,docker,容器,运维)