记一次Python3.8.1安装

  单纯的安装一个软件的确没什么可说的,但对于我来说,本次安装又确实值得记录,因为它花费了我将近8个小时的时间。从下午2点,到晚上10点。那么我到底遇到什么问题了?接下来我会细细总结一下。

  系统:deepin15.10

  python版本(已存在):2.7,3.5.3

  1、第一个遇到的问题,是安装完成Python3.8.1之后想要安装第三方库时出现的:Can't connect to HTTPS URL because the SSL module is not available. - skipping,划重点,“SSL”,这说明我没有OpenSSL这个插件,但很显然,我不可能没有下载OpenSSL,那么就说明我没有将3.8和OpenSSL联系起来,为了做到这一点,我需要配置解压后的3.8中的Setup,将相关语句解开注释:

重新编译,然后我就遇到了第二个问题。

  2、第二个问题是在make时出现的:./Modules/_ssl.c:57:25: fatal error: openssl/rsa.h: 没有那个文件或目录这个错误的出现应当是我上面的SSL的路径配置错误,所以我需要找到OpenSSL的正确路径。此时,出现了第三个问题。

  3、第三个问题是我找不到OpenSSL的真正路径,没错,我不知道OpenSSL究竟在哪。linux使用命令行安装软件

非常方便,但非常不幸的是,使用apt-get安装后的软件我从来都找不到到底在哪,我也搜索过这个问题,记得有一个回答是linux会自动将下载的软件中的文件夹分成不同的类型放入不同的文件夹中,比如软件有lib文件夹,有bin文件夹,有doc文件夹,那么使用命令行下载所有软件,会将所有的lib放在一起,所有bin放在一起,所有的doc放在一起,这也就造成一个软件,在使用者眼中是“分裂”的。这就是我找不到OpenSSL的原因。不过,在发现了不同版本的python各自拥有OpenSSL时,我决定从官网上重新下载一个OpenSSL,然后提供给Python3.8。下载,编译,安装,很顺利,新的OpenSSL安装成功了,然后继续Python3.8的编译,于是,我遇到了第四个问题。

  4、第四个问题同样是在make时出现的:./python: /lib/x86_64-linux-gnu/libssl.so.1.1: version `OPENSSL not found,这个问题似乎涉及到依赖的问题,python的依赖有一个没有找到。

我使用ldd ./python,发现同样弹出NotFound,

这个问题要比前几个麻烦得多——因为我对于依赖一点也不了解,只知道依赖大概是没有某个插件的支持,这个软件就不能使用的意思。我试着去网上提问,有人告诉了我几种解决的方法,但都不能解决我的问题,在上网查询之后我发现,这个报错一般代表着新版本的内容被指向了旧版本——简单来说就是版本之间的冲突。然后就引发了第五个问题。

  5、第五个问题:我的OpenSSL不能使用了。同样是NotFound错误。

  直到最后,我也没解决这些问题,我选用了最粗暴的方法:rm -rf。OpenSSL不能用了?删!Python3.8没编译成功?删!把所有删个干净后再重新安装,sudo apt-get install openssl,vim Setup,sudo ./configure --enable-optimizations --prefix=/usr/local/python3.8,sudo make,sudo make install,sudo ln -s /usr/local/python-3.8/bin/python3.8 /usr/bin/python3.8一气呵成!没有终止,没有报错!

  果然,有时候换个姿势,效果也许会更好。

猜你喜欢

转载自www.cnblogs.com/YXSZ/p/12337816.html