CentOS7 安装Python3
CentOS7 安装Python3
本文主要介绍在CentOS7上通过源码编译的方式案头Python3, 文中用到的是CentOS7.2, Python版本是3.6.7,其他类似版本的处理也是大致相同的.
在安装Python3之前需要解决两个问题:
- 一是 开发环境安装,比如gcc等
- 二是 openssl的安装, 因为CentOS自带的openssl版本比较低,导致Python3安装完后,在python命令行中执行import ssl会报错:ImportError: No module named _ssl。
特别是第二个ssl错误,相信很多人都遇到过,我自己也在这个问题上纠缠了很长时间, 现在将亲测有效的解决方案分享给大家。
1.安装开发环境依赖
1 | sudo yum -y groupinstall development |
2.更新openssl
先通过命令看看筷的openssl版本,如果返回是0.9.x, 那肯定需要升级了
1 | openssl version |
按照如下方式升级openssl
1 | wget http://www.openssl.org/source/openssl-1.0.2e.tar.gz |
到这openssl安装完成了, 接下来可以开始编译安装Python3了, 注意我们指定的openssl安装路径是在/usr/local/openssl, 这个后面要用到。
3.安装Python3
先下载解压Python3.6.7安装包
1
2
3wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz
tar xvzf Python-3.6.7.tgz
cd Python-3.6.7然后修改Setup.dist, 指定ssl位置
1
vi Modules/Setup.dist
搜索ssl, 取消以下几行注释, 并且修改SSL的值为我们实际安装openssl的值, 即:/usr/local/openssl
1
2
3
4
5
6
7
8_socket socketmodule.c
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/openssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto注: 网上很多说在./configure 后面加–with-openssl的方法来指定openssl的方法自测无效, 通过修改Setup.dist方才生效。
完成以上修改后,即可开始编译Python3, 命令如下。
1
2
3./configure
make
make install
4.验证Python3
1 | python3 |
正常不会报错, 则Python3安装成功。
另外,给大家推荐一个Python虚拟环境的包pipenv, 强大又好用, 大家可以试试。
1 | python3 -m pip install pipenv |
至此,CentOS7上安装Python3完毕。
这个是我参考的文章,感谢前人的分享!How to Compile and Install Python with OpenSSL Support?