Linux源码编译python3(以及必要的依赖包libffi)

目录

1 下载python3源码

2 解压源码,进入解压的路径

3 configure

4 make

5 sudo make install失败

6 源码编译libffi

6.1 下载源码3.4.4

6.2 解压,并进入解压后的路径

6.3 执行如下三步:

6.4 ldconfig

6.4.1 /etc/ld.so.conf

6.4.2 ldconfig

7 sudo make install成功安装python3

8 建立软链接

8.1 建立python3的软链接

8.2 建立pip3的软链接


本文参考了Linux下使用源码包安装Python_libressl 2.8.3-CSDN博客

本文操作系统为银河麒麟虚拟机

1 下载python3源码

版本3.7.3  地址:CNPM Binaries Mirror (npmmirror.com)

2 解压源码,进入解压的路径

3 configure

./configure --prefix=/usr/local/python3

4 make

5 sudo make install失败

这一步可能出问题。下面是我遇到的问题截图:

根据ModuleNotFoundError: No module named ‘_ctypes‘解决方法_no module named '_ctypes-CSDN博客的说法,解决办法是安装libffi。下面通过编译源码安装libffi

6 源码编译libffi

6.1 下载源码3.4.4

libffi (sourceware.org)

版本3.4.4 

6.2 解压,并进入解压后的路径

6.3 执行如下三步:

./configure
make
sudo make install

6.4 ldconfig

安装完成后,libffi.so安装在/usr/local/ib中。这个路径下增加的so文件不会立刻起作用,而要经过如下两步才起作用:

6.4.1 /etc/ld.so.conf

确认/usr/local/lib出现在ld.so.conf中

6.4.2 ldconfig

sudo ldconfig

7 sudo make install成功安装python3

 回到刚才解压python3源码,并执行make和make install的路径,再次执行:

sudo make install

安装完成:

8 建立软链接

由于银河麒麟已经预装了python2.7,所以要把新的python与旧的区别开。

8.1 建立python3的软链接

sudo ln -s /usr/local/python3/bin/python3.7 /usr/sbin/python3

完成这一步,你就可以看到python3的版本号了。

8.2 建立pip3的软链接

sudo ln -s /usr/local/python3/bin/pip3 /usr/sbin/pip3