Linux(Ubuntu 16.04)下非root用户编译安装Python 3.8.6

鬼知道我一天天都在什么破事上浪费时间。——鲁迅(不是

起因

老板舍不得买卡,需要训练一个训练起来非常耗时的模型,借了别人服务器使,人家给了一台硬件相当不错(我活这么久没见过)、软件极其落后的机器,系统是Ubuntu 16.04无可厚非,0202年了Python居然还在用3.5.2,没有pip。没有root权限,我的项目又需要Python 3.6以上的环境,没办法,自力更生,搞起来。

依赖库的准备

我遇到的缺失的库包括:OpenSSL、zlib和libffi,依次编译安装。

1. OpenSSL的编译安装

去官网下载源码,解压,配置并编译安装即可。

OpenSSL是pip下载包必不可少的库(除非不使用HTTPS)。

是的,两颗至强金牌,共24核48线程,羡慕哭。

2. zlib的编译安装

同样去官网下载源码,解压,配置并编译安装。

zlib是Python编译时必须用到的库。

3. libffi的编译安装

去GitHub下载源码,解压,配置并编译安装。

libffi是Python编译“_ctypes”模块必须的库,没有这个模块,后续包的安装编译基本寸步难行。

此外,还需要将libffi的包信息写入系统变量:

4. 将依赖的动态库路径写入链接路径

防止接下来Python编译时找不到这3个库。

Python的下载,编译和安装

首先去官网下载源码并解压进入目录,连通性不是很好,可能有人需要科学上网。

修改Modules目录下的Setup文件,取消掉其中对SSL和zlib的模块注释:

配置,需要利用pkg-config指定链接libffi,并指定OpenSSL的位置:

编译并安装:

在系统路径中添加Python的路径(最好写到.bashrc里):

其他

方便起见,可以用别名指定Python和pip的版本:

我也不知道我上辈子造了什么孽天天要把时间浪费在这种无聊的事情上。——小B宰治

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览208564 人正在系统学习中

来源:瑞凤玉子烧

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年9月26日
下一篇 2020年9月26日

相关推荐