阿里云安装python3兼容系统自带的python2

本文以安装python3.7.3版本为例,简单介绍一下阿里云基于centeros系统的安装过程。这里我们兼容centeros系统自带的2.7的python版本
使用python 和python3 两个命令区分python的版本号,前者指向python2的版本;后者执行python3的版本

  • 0.安装基础依赖,主要是检查一下是否有基础依赖未安装成功或者未安装的

yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++

  • 1.下载python3

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

  • 2.解压安装包

xz -d Python-3.7.3.tar.xz
tar -xvf Python-3.7.3.tar

  • 3.配置编译环境
    简单配置编译环境,并且最终把安装文件放置在/usr/local/python3目录下

cd Python-3.7.3
./configure --enable-loadable-sqlite-extensions --enable-optimizations --prefix=/usr/local/python3

  • 4.编译安装

make && make install

  • 5.ModuleNotFoundError: No module named ‘_ctypes’
    遇到_ctypes模块为找到的情况后先安装然后继续编译,其他提示如果需要安装的模块依赖也类似参考如下进行安装

yum install libffi-devel -y
make && make install

如果以上步骤正常无错误提示的话,可以继续做软引用也就是类似的windows的快捷方式,目的是我们在终端使用python3命令的时候能正常引用到,这样处理也就不用去在配置环境变量了。

这里也就是在/usr/bin /usr/local/bin两个文件夹下创建了两个软连接pip3(安装包管理)和python3 分别指向python3的安装目录。

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

ln -sv /usr/local/python3/bin/python3 /usr/bin/python3
ln -sv /usr/local/python3/bin/python3 /usr/local/bin/python3

上面的操作执行成功的话我们在终端执行python3 和pip3也就能正常使用了 ,使用python3 -V 也就能正常查看3.7.3的版本号

[root@izbp15l4iowo9ka9y589wbz Python-3.7.3]# python3 -V
Python 3.7.3

这这里引申一下,因为部署完成以后笔者测试了一下python脚本引用ssl模块的时候,系统提示No module named _ssl

解决方案如下:

  • 1.下载openssl

wget http://www.openssl.org/source/openssl-1.1.1.tar.gz

  • 2.解压并安装

tar -zxvf openssl-1.1.1.tar.gz

cd openssl-1.1.1

./config --prefix=$HOME/openssl shared zlib

make && make install

  • 3.重新编译python3

cd Python-3.7.3
./configure --enable-loadable-sqlite-extensions --enable-optimizations --prefix=/usr/local/python3 --with-openssl=$HOME/openssl
make && make install

[root@izbp15l4iowo9ka9y589wbz Python-3.7.3]# python3
Python 3.7.3 (default, Jun 29 2019, 23:32:18)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>>

到此我们在centeros上同时使用python2和python3的目的已实现,可以畅快的玩耍了。

你可能感兴趣的:(#,Python编程)