据我目前所知,只能源码安装。
环境:SuSE 12,python 3.6.4
时间:2022年1月24日(更新)
suse安装python3.7我无法安装上,问题是libffi-devel无法安装,略去,言归正传
查看zypper源:
zypper lr
上述的zypper源其实就是镜像(安装系统是所用的镜像文件)
安装gcc等编译所需的软件:
zypper in gcc gcc-c++ zlib-devel libopenssl-devel
下载相关文件:
python 3.6.4:https://repo.huaweicloud.com/python/3.6.4/Python-3.6.4.tgz
readline-6.2.4.1:https://files-cdn.cnblogs.com/files/SBJBA/readline-6.2.4.1.tar.gz
zlib-1.2.11:http://www.zlib.net/fossils/zlib-1.2.11.tar.gz
将上述三个文件上传至系统,并解压
安装zlib-1.2.11:
tar xzf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure && make && make install
安装readline-6.2.4.1:
tar xzf readline-6.2.4.1.tar.gz
cd readline-6.2.4.1/rl/
tar xzf readline-6.2.tar.gz
cd readline-6.2/
./configure&&make&&make install
系统自带python 3.4.6,不要卸载该版本,卸载该版本可能出现未知错误!!!
安装python 3.6.4:
解压python3的压缩包,修改代码源文件。
tar xzf Python-3.6.4.tgz
cd Python-3.6.4/
vim Modules/Setup.dist
找到如下代码,取消注释,并注意209行、211行、212行
205 _socket socketmodule.c
206
207 # Socket module helper for SSL support; you must comment out the other
208 # socket line above, and possibly edit the SSL variable:
209 SSL=/usr/local
210 _ssl _ssl.c \
211 -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
212 -L$(SSL)/lib64 -lssl -lcrypto
注意:
查找openssl目录是否存在,有以下可能
1、/usr/local/include 2、/usr/include
根据实际情况,确认209行的目录是否正确(有可能与我的目录不一样)
第212行的内容实际查找的是libcrypto.so文件,该文件也是需要根据具体条件去设置。
源码安装:
./configure --prefix=/usr/local/python3
make&&make install
至此,python安装完成,
注意:必须先安装zlib,而后安装readline,否则报错
创建软连接:
ln -s /usr/local/python3/bin/python3.6 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
验证python3和pip3的使用:
linux-eg8g:/usr/local/python3/bin # ./pip3 list
Package Version
---------- -------
pip 18.1
setuptools 40.6.2
You are using pip version 18.1, however version 21.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
linux-eg8g:/usr/local/python3/bin # ./python3.6
Python 3.6.4 (default, Jan 24 2022, 12:21:30)
[GCC 4.8.5] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>>
结束!!!!!!!!!!!!!!!!!!!!!
python 3.6.9未成功,原因是虽然安装了readline,但是会出现没有该模块的问题,尚未解决