目录
1.在linux主机home目录下新建python目录
2.拷贝两份文件到新建的python目录下 :/etc/profile和/etc/bashrc。
3.运行centos容器(可以根据个人情况进行参数更改)
4.cd到/home/python目录下,下载python3.9源码包,时间比较长,稍稍等待中...
6.指定编译安装的文件夹
8.配置centos容器的环境变量
9. 刷新centos容器配置文件
10.验证是否安装成功
11.安装依赖失败问题解决
思路:构建centos镜像容器,共享python安装文件夹和centos配置文件(即:将centos里面需要的文件,映射到主机上,然后操作主机文件即可)
文件一位置
文件二 位置
docker run -itd --name centos-test -p 8080:8080 -v /home/python:/home/python -v /home/python/profile:/etc/profile -v /home/python/bashrc:/etc/bashrc centos:latest
对centos容器安装一些必要的工具
如果不安装则可能会出现一些依赖和命令无法安装或执行:import _ssl # if we can't import it, let the error propagate
或
Error: Failed to download metadata for repo 'appstream': Cannot prepare inte
①centos7已经停止维护会导致一些东西无法安装成功,我们需要换一下更新源
首先进入容器:
docker exec -it 7c bash
进入到 yum 的 repos 目录
cd /etc/yum.repos.d/
修改 centos 文件内容
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
生成缓存更新(第一次更新,速度稍微有点慢,耐心等待两分钟左右)
yum makecache
最后,运行 yum update 并重新安装 vim
yum install -y net-tools
yum update -y
yum -y install vim
②安装工具 openssl-devel
yum install openssl openssl-devel -y
③安装工具compat-openssl10
yum install compat-openssl10
④安装工具libffi-devel
yum install libffi-devel
⑤安装工具net-tools
yum install -y net-tools
wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
5.解压源码包
tar -zxvf Python-3.9.0.tgz
先cd进/home/python/Python-3.9.0目录下
cd Python-3.9.0
安装工具包
yum install libffi-devel
yum install bzip2-devel
yum install sqlite-devel
指定安装的文件夹为: /home/python/python39
./configure --prefix=/home/python/python39
7.编译安装
make && make install
修改/home/python/profile文件,加上下边一行:
PATH=/home/python/python39/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
修改/home/python/bashrc文件,加上下面一段话:
if [ -f /etc/profile ]; then
. /etc/profile
fi
进入centos容器
docker exec -it 7c bash
python3 -V
新建文件
mkdir -p ~/.pip
vim ~/.pip/pip.conf
vim用不了的话就用vi命令,粘贴之前先按i,退出esc+冒号+wq
然后输入内容:
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com