Install python3 in centos7

Keywords: pip SSL Python yum

1. Install the corresponding compilation tools

In the root user (do not use ordinary users, trouble), all copy and paste in the past, a one-time installation

yum -y groupinstall "Development tools"
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 install -y libffi-devel zlib1g-dev
yum install zlib* -y

2. Download the installation package

wget wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz

3. Decompress

tar -xvJf  Python-3.7.2.tar.xz

4. Create compilation and installation directory

mkdir /usr/local/python3 

5. Installation

cd Python-3.7.2
./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl 
#The first is to specify the installation path. If not specified, the files required by the software may be copied to different directories during the installation process. It is inconvenient to delete the software and copy the software
#The second one can improve the running speed of Python 10% - 20%
#The third is to install pip using ssl, which will be mentioned later
make && make install

what-does-enable-optimizations-do-while-compiling-python

6. Create soft link

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

7. Verify success

python3 -V
pip3 -V

8. Error reporting

Error 1

zipimport.ZipImportError: can't decompress data; zlib not available Makefile:1099: recipe for target 'install' failed make: *** [install] Error 1

Installation dependency required

yum -y install zlib1g-dev

Error 2

ModuleNotFoundError: No module named '_ctypes'

Installation dependency required

yum -y install libffi-devel 

The dependencies required by these two errors have been added to the initial dependency installation
Reference article

9. Install pipenv

Using Python 3.7 or above in centos makes pip install command easy to report errors

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https:*******: There was a problem confirming the ssl certificate: 
Can't connect to HTTPS URL because the SSL module is not available. - skipping

During. / configure, if the – with ssl parameter is not added, the function of ssl related to the default installed software is not available, just because the pip3 process requires the ssl module, but because it is not specified, the function is not available. The solution is to recompile and install python3.6. Use the following procedure to implement the compilation and installation:

cd Python-3.7.2
./configure --with-ssl
make && make install

The pip can be installed normally
This is also specified when installing python
Reference article

10. Modify pip installation source

Modify system pip installation source
Create a new. PIP folder in the home directory and enter the folder to create a new file pip.conf Then write the corresponding mirror website address

cd ~
mkdir .pip
cd .pip
vim pip.conf

#After entering, add the following content and save to exit
[global]
index-url = https://mirrors.aliyun.com/pypi/simple

Modifying the pipenv installation source
Find the Pipfile file in your own virtual environment, and put the URL in it =“ https://pypi.org/simple "Change to the domestic image you need, such as https://mirrors.aliyun.com/pypi/simple/

[root@localhost myproject]# vim Pipfile 


[[source]]
name = "pypi"
url = "https://pypi.org/simple "Change to url =" https://mirrors.aliyun.com/pypi/simple/ "
verify_ssl = true

[dev-packages] #Here is the development environment specific package. Use pipenv install --dev package to install the development environment specific package

[packages] # General package for all environments, installed here

[requires]
python_version = "3.7"

Posted by guido88 on Thu, 18 Jun 2020 20:12:07 -0700