2022年 11月 7日

Python编译

py的编译

  • 下载py
  • 编译
  • 设置环境变量
  • 问题解决:
    • openssl问题
    • 下载openssl
      • 解压
      • 编译
      • 修改本地openssl
      • 再次执行下py的config

本文介绍如何下载源码及编译

下载py

我的开发环境是ubuntu所以在有网的情况下,我就可以直接用apt安装
sudo apt-get install python3.8
然后本文就结束了。

还有一种情况没有外网,那么就下载源码进行编译。
下载地址:
https://www.python.org/downloads/
在这里插入图片描述
按需要选择个版本点击链接后就会看到源码以及macos平台的和win平台的安装包
在这里插入图片描述

编译

下载源码后就拿到了这个包
在这里插入图片描述
1.解压
xz -d xxx.tar.xz (-k 保留这个xz包)
tar -xvf ***.tar
2.设置安装目录 注意需要绝对路径
cd py目录
./configure –prefix=/xxxx/python3.8.8
3.编译
make
make install
安装完后就能看到这些
在这里插入图片描述

设置环境变量

一般在一个系统里面我们习惯共存py2 和py3因为他们有很大的不同
然后用软连接的方式调用
一般python调用的是python2的版本,调用python3版本的话用python3来调用
在这里插入图片描述
install后已经创建好了软连接
在这里插入图片描述
vim ~/.bashrc
export PATH=~/xxx/python3.8.8/bin:$PATH
source ~/.bashrc
查看是否生效。
在这里插入图片描述

问题解决:

openssl问题

我用ubuntu1804编译有如下问题
在这里插入图片描述
回看config发现也没check到openssl在这里插入图片描述
但是查看openssl版本有的,但没有include相关的头文件调用不到
在这里插入图片描述

下载openssl

https://www.openssl.org/source/
在这里插入图片描述

解压

tar -xzvf openssl-1.1.1l.tar.gz

编译

  1. ./config –prefix=/usr/local/openssl
  2. make && make install
  3. 查看local是否有openssl 以及其目录下include头文件

修改本地openssl

在/etc/ld.so.conf.d/libc.conf
添加/usr/local/openssl/lib/ 一行
执行ldconfig
测试
在这里插入图片描述

再次执行下py的config

make && makeinstall