Linux下编译安装 Python 3.8

1、介绍

Linux 下默认系统自带 python2.6 的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的 Python3 那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装 python3python2 共存。

2、准备

首先去 python 官网下载 python3 的源码包。
网址:https://www.python.org/

进去之后点击导航栏的 Downloads,也可以鼠标放到 Downloads 上弹出菜单选择 Source code,就是源码包的意思,这里选择最新版本3.5.1,当然下面也有很多其他历史版本,点进去之后页面下方可以看到下载链接,包括源码包、Mac OSX 安装包、Windows 的安装包。

Python下载图

依赖包

yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++ 
yum install xz-devel uuid-devel libuuid-devel 


openssl

# 直接安装 pip是不能用的,原因是依赖ssl 1.0.2以上版本,要更新OpenSSL 版本。
wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz
#更新OpenSSL
tar -zxvf openssl-1.0.2j.tar.gz
cd openssl-1.0.2j
./config --prefix=/usr/local/openssl shared zlib
make && make install
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib" >> $HOME/.bash_profile
source $HOME/.bash_profile
#rm -rf /usr/bin/openssl
ln -s /usr/local/openssl/bin/openssl /usr/local/bin/openssl

3、安装

tar -xvzf Python-3.8.0.tgz			#解压文件
cd Python-3.8.0/					#进入目录
./configure --prefix=/usr/local/python3.8/ --with-openssl=/usr/local/openssl --enable-optimizations	#添加配置
make									#编译源码(看下边重点)
make install							#执行安装

ln -s /usr/local/python3.8/bin/python3.8 /usr/local/bin/python3 
ln -s /usr/local/python3.8/bin/pip3 /usr/local/bin/pip3

echo "export PATH=/usr/local/mysql/bin:$PATH" >> $HOME/.bash_profile

pip3 install --upgrade pip
#使用清华的pip 源安装pyinstaller
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller  

问题

_openssl

# 直接安装 pip是不能用的,原因是依赖ssl 1.0.2以上版本,要更新OpenSSL 版本。
wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz
#更新OpenSSL
tar -zxvf openssl-1.0.2j.tar.gz
cd openssl-1.0.2j
./config --prefix=$HOME/openssl shared zlib
make && make install
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openssl/lib" >> $HOME/.bash_profile
source $HOME/.bash_profile
rm -rf /usr/bin/openssl
ln -s /root/openssl/bin/openssl /usr/bin/openssl

_lzma

yum install -y xz-devel

_sqlite3

使用 sqlite3 --help 来判断是否已经安装 sqlite3,使用 which sqlite3 查看安装目录。

wget http://www.sqlite.org/sqlite-3.5.6.tar.gz
tar -xzvf sqlite-3.5.6.tar.gz
cd sqlite-3.5.6
./configure --disable-tcl --prefix="/usr/local/sqlite3.5"
make 
make install

重新编译Python 增加

./configure LDFLAGS="-L/usr/local/sqlite3.5/lib" CPPFLAGS="-I/usr/local/sqlite3.5/include"

_uuid

yum install uuid-devel libuuid-devel 

其他问题

参考:https://my.oschina.net/mengyoufengyu/blog/2249877

yum -y install zlib zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel 
yum -y install tk-devel gdbm-devel db4-devel libpcap-devel xz-devel wget
yum -y install gcc kernel-devel kenel-headers make bzip2 libffi libffi-devel
yum -y install expat-devel e2fsprogs-devel uuid-devel libuuid-devel tcl
yum -y install gdbm-devel tcl-devel tk-devel python-tools

安装setuptools

wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
python setup.py build
python setup.py install

#报错: RuntimeError: Compression requires the (missing) zlib module
#解决:yum install zlib-devel

安装pip

wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2
python setup.py build
python setup.py install
#报错:pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
#  解决:
#  yum install openssl
#  yum install openssl-devel

# 升级pip(可选):
pip install --upgrade pip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值