Let's install multiple python versions in linux
install multiple versions of python
All Python Released Source
The following code has been verified in Centos8.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
| #!/usr/bin/env bash
PYTHON_DIR="/opt/python/"
DOWNLOAD_DIR="/home/download/"
PYTHON_2_HOME="${PYTHON_DIR}/py2"
PYTHON_3_HOME="${PYTHON_DIR}/py3"
PYTHON_2_VERSION="2.7.17"
PYTHON_3_VERSION="3.8.2"
# ************ preparation ************
mkdir -p ${DOWNLOAD_DIR}; mkdir -p ${PYTHON_2_HOME}; mkdir -p ${PYTHON_3_HOME}
if ! [[ -f ${DOWNLOAD_DIR}/Python-${PYTHON_3_VERSION}.tgz ]]; then
wget -P ${DOWNLOAD_DIR} https://www.python.org/ftp/python/${PYTHON_3_VERSION}/Python-${PYTHON_3_VERSION}.tgz || exit
fi
if ! [[ -f ${DOWNLOAD_DIR}/Python-${PYTHON_2_VERSION}.tgz ]]; then
wget -P ${DOWNLOAD_DIR} https://www.python.org/ftp/python/${PYTHON_2_VERSION}/Python-${PYTHON_2_VERSION}.tgz || exit
fi
tar -zxvf ${DOWNLOAD_DIR}/Python-${PYTHON_3_VERSION}.tgz -C ${DOWNLOAD_DIR}
tar -zxvf ${DOWNLOAD_DIR}/Python-${PYTHON_2_VERSION}.tgz -C ${DOWNLOAD_DIR}
# ************ install dependency packages ************
yum install -y gcc gcc-c++ automake make autoconf libtool diffutils sudo zlib-devel
# ************ install python 2 ************
cd ${DOWNLOAD_DIR}/Python-${PYTHON_2_VERSION} || return
# if need, you can uncomment the following code
# make clean
./configure --prefix=${PYTHON_2_HOME} --enable-optimizations
make
sudo make install
sleep 10s
# ************ install python 3 ************
cd ${DOWNLOAD_DIR}/Python-${PYTHON_3_VERSION} || return
# if need, you can uncomment the following code
# make clean
./configure --prefix=${PYTHON_3_HOME} --enable-optimizations
make
sudo make install
# ************ manage python version ************
# remove old python version management
alternatives --display python | grep priority | awk '{print $1}' | xargs -n1 alternatives --remove python >/dev/null 2>&1
# remove old python2 version management
alternatives --display python2 | grep priority | awk '{print $1}' | xargs -n1 alternatives --remove python2 >/dev/null 2>&1
# remove old python3 version management
alternatives --display python3 | grep priority | awk '{print $1}' | xargs -n1 alternatives --remove python3 >/dev/null 2>&1
# rebuild all python version management
alternatives --install /usr/bin/python python ${PYTHON_2_HOME}/bin/python2 1
alternatives --install /usr/bin/python python ${PYTHON_3_HOME}/bin/python3 9
alternatives --install /usr/bin/python2 python2 ${PYTHON_2_HOME}/bin/python2 9
alternatives --install /usr/bin/python3 python3 ${PYTHON_3_HOME}/bin/python3 9
|