本文链接:https://www.jianshu.com/p/8cafd749dfa8
作者:西瓜甜
一、源码安装
1. 安装依赖软件包
yum -y groupinstall "Development Tools"
yum -y install zlib-devel bzip2-devel openssl-devel sqlite-devel readline-devel libffi-devel
2. 下载源码包
image.png可以直接点击下载,也可以右键 选择复制链接地址。
wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz
3. 解压安装
tar -xf Python-3.7.6.tar.xz
cd Python-3.7.6
4. 修改配置信息
可以选择如下两种方式之一
方式一:直接使用 vi 修改
修改解压后目录下的文件 Modules/Setup.dist
, 去掉如下几行的注释 :
readline readline.c -lreadline -ltermcap
SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
注意:3.8 中的文件名是
Setup
, 不是Setup.dist
方式二:在 shell
命令提示符下执行如下命令:
3.7 中
sed -ri 's/^#readline/readline/' Modules/Setup.dist
sed -ri 's/^#(SSL=)/\1/' Modules/Setup.dist
sed -ri 's/^#(_ssl)/\1/' Modules/Setup.dist
sed -ri 's/^#([\t]*-DUSE)/\1/' Modules/Setup.dist
sed -ri 's/^#([\t]*-L\$\(SSL\))/\1/' Modules/Setup.dist
3.8 中
sed -ri 's/^#readline/readline/' Modules/Setup
sed -ri 's/^#(SSL=)/\1/' Modules/Setup
sed -ri 's/^#(_ssl)/\1/' Modules/Setup
sed -ri 's/^#([\t]*-DUSE)/\1/' Modules/Setup
sed -ri 's/^#([\t]*-L\$\(SSL\))/\1/' Modules/Setup
5. 开始编译安装
./configure --enable-shared
make -j 2 && make install
# -j 当前主机的 cpu 核心数
--enable-shared 指定安装共享库,共享库在使用其他需调用python的软件时会用到,比如使用
mod_wgsi
连接Apache与python时需要。
二、 配置环境
1. 配置共享库文件
执行如下两条命令
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib' >/etc/profile.d/python3_lib.sh
echo "/usr/local/lib" > /etc/ld.so.conf.d/python3.conf
接下来,执行如下命令使配置好的环境信息生效
ldconfig
source /etc/profile
三、 测试安装
测试 python3
[root@sharkyun ~]# python3 -V
Python 3.7.6
[root@mysql-1 ~]#
假如上面显示的含有 Python3.7.6 就没问题了
测试 pip3
[root@sharkyun ~]# pip3 -V
pip 20.0.2 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
输出的信息中的目录
/usr/local/lib/python3.7/site-packages/
是用于存放 安装的第三方模块的
四、 配置使用本地的源安装第三方模块
- 在当前用户的家目录下创建一个隐藏的目录
.pip
mkdir ~/.pip
- 执行如下命令,以便写入国内的源:
echo '[global]' >> ~/.pip/pip.conf
echo 'index-url=https://mirrors.aliyun.com/pypi/simple' >> ~/.pip/pip.conf
豆瓣源:
https://pypi.douban.com/simple/
阿里源:https://mirrors.aliyun.com/pypi/simple
- 测试配置正确行
可以安装一个增强版的解释器 ipython
用于测试后面也会用的这个模块
pip3 install ipython
image.png
安装脚本
# 安装依赖包
yum -y groupinstall "Development Tools"
yum -y install zlib-devel bzip2-devel openssl-devel sqlite-devel readline-devel libffi-devel
# 设置安装的版本, 默认按照 3.8.5
version=$1
version=${versioon:-3.8.5}
py_pkg="Python-${version}.tgz"
py_dir="Python-${version}"
if [ ! -f "${py_pkg}" ];then
url="https://www.python.org/ftp/python/${version}/"
wget ${url}${py_pkg}
fi
tar -xf $py_pkg
cd $py_dir
if [[ "$version" =~ ^3\.8 ]];then
conf_file="Modules/Setup"
else
conf_file="Modules/Setup.dist"
fi
# 修改配置,让Python 支持 SSL 和正则
sed -ri \
-e 's/^#readline/readline/;' \
-e 's/^#(SSL=)/\1/' \
-e 's/^#(_ssl)/\1/' \
-e 's/^#([\t]*-DUSE)/\1/' \
-e 's/^#([\t]*-L\$\(SSL\))/\1/' ${conf_file}
# 配置安装
./configure --enable-shared
make && make install
# 设置加载共享库的环境变量
cat >/etc/profile.d/python3_lib.sh<<EOF
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/lib
EOF
echo "/usr/local/lib" > /etc/ld.so.conf.d/python3.conf
ldconfig
网友评论