本篇文章介绍如何在centos7中安装python3.9.4(下文简称python3),解决python3安装后import ssl模块失败问题,为什么我要在centos7中安装python呢,因为我需要在服务器中跑python数据处理脚本。
安装python3同时解决import ssl模块失败问题总共包括两步,第一步是安装高版本的openssl,第二步是安装python3,下面分别详述。
-
安装openssl
centos7中自带的openssl版本比较低,我没记错应该是1.0.1,python3.9.4需要更高级的版本,我安装的是openssl-1.1.1n- 下载openssl,下载地址为: openssl下载链接
- 解压tar包:
tar -zxvf openssl-1.1.1n.tar.gz
- 进入目录:
cd openssl-1.1.1n
- 执行命令
./config --prefix=/export/python/openssl shared zlib
–prefix 设置openssl的安装目录,后续安装python的时候需要- 执行命令
make && make install
安装后的效果如下
查看openssl版本的方式如下
-
安装python3
- 安装依赖包
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 libffi-devel
- 下载python3安装包,下载地址
- 解压jar包
tar -xJvf Python-3.9.4.tar.xz
-
设置环境变量LD_LIBRARY_PATH
- 打开环境变量文件:
vi ~/.bashrc
- 增加如下配置:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/export/python/openssl/lib
- 使修改生效:
source ~/.bashrc
这一步一定要有!!! LD_LIBRARY_PATH环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。当执行函数动态链接.so时,如果此文件不在缺省目录下‘/lib’ and ‘/usr/lib’,那么就需要指定环境变量LD_LIBRARY_PATH
-
进入目录
cd Python-3.9.4
- 执行命令
./configure --prefix=/export/python/python3 --with-openssl=/export/python/openssl --enable-shared
–prefix=/export/python/python3 设置python的安装目录
–with-openssl=/export/python/openssl 这一步是刚才安装的openssl的目录位置- 执行命令
make && make install
- 进入python安装目录的lib下
cd /export/python/python3/lib
- 拷贝动态链接库
sudo cp libpython3.9.so.1.0 /usr/lib64/libpython3.9.so.1.0
好了,现在可以试下了,正常情况下应该是这样的
如果找不到python3,可以把它放到环境变量中再试一下
vi ~/.bashrc
export python_home=/export/python/python3
export PATH=$PATH:$python_home/bin:$python_home/lib
另外我有些通过pip下载whl包的方法,服务器不能访问外网时,可以离线下载安装,还有一些解决代码执行时,工程里的代码无法像库函数一样被引用的方法,有需要可以参看 : python相关命令
本篇文章了受到 https://blog.csdn.net/weixin_30951743/article/details/99891139 此文章的启发,感谢原作者