美文网首页
1 Linux 源码安装 python3

1 Linux 源码安装 python3

作者: 运维开发_西瓜甜 | 来源:发表于2020-03-28 15:42 被阅读0次

本文链接: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/
是用于存放 安装的第三方模块的



四、 配置使用本地的源安装第三方模块

  1. 在当前用户的家目录下创建一个隐藏的目录 .pip
mkdir ~/.pip
  1. 执行如下命令,以便写入国内的源:
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

  1. 测试配置正确行

可以安装一个增强版的解释器 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

相关文章

网友评论

      本文标题:1 Linux 源码安装 python3

      本文链接:https://www.haomeiwen.com/subject/jupejhtx.html