Python3 源码安装(Linux 版)

第一章 Python3 源码安装(Linux 版)

一、源码安装

安装依赖软件包

yum -y install gcc gcc-c++ zlib-devel bzip2-devel openssl-devel  sqlite-devel readline-devel 

前提条件是:你的系统已经安装了开发工具包。

下载

curl -o python3.6.tgz https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz

// 或者

wget  https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz

解压安装

tar -xf Python-3.6.5.tgz

cd Python-3.6.5/

进入目录后,执行下面的命令

修改文件 Python-3.6.5/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

或者在 shell 命令提示符下执行如下命令:

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

开始编译安装

./configure --enable-shared

make -j 2 && make install
# -j cpu核心数

--enable-shared 指定安装共享库,共享库在使用其他需调用python的软件时会用到,比如使用mod_wgsi 连接Apache与python时需要。

配置共享库文件

  1. 为所有用户设置共享库目录

用 vi 编辑器打开配置文件 /etc/profile.d/python3_lib.sh

vi /etc/profile.d/python3_lib.sh

在文件末尾写上如下内容:

# python3.6 共享库目录
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

编辑文件 /etc/ld.so.conf.d/python3.conf,并且添加如下内容:

/usr/local/lib

保存退出文件后, 执行如下命令 加载配置信息使其生效

ldconfig

执行如下命令,是环境变量生效

source /etc/profile
# 此条命令只能让当前的 shell 环境下的环境变量生效,最好重启机器

测试python3

$ python3
Python 3.6.3 (default, Dec 17 2017, 04:11:01)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('qf')
qf
>>> exit()

输入 exit() 即可退出 python3

测试 pip3

image

假如上面显示的含有 python3.6 就没问题了,说名 pip3 安装的模块会安装到上面显示的目录下

特殊问题

假如 Python Shell 中敲击方向键显示「[[C[[D」
可以安装以下包

一般情况下你不需要执行下面的安装命令。

pip3 install gnureadline



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

创建配置文件

  1. 配置 pip3 使用本地源

    mkdir ~/.pip
    vi ~/.pip/pip.conf
    # Windows 下使用 pip.ini
    
    

写入如下内容:

[global]
index-url=https://mirrors.aliyun.com/pypi/simple

豆瓣源: https://pypi.douban.com/simple/
阿里源: https://mirrors.aliyun.com/pypi/simple

示例:
比如安装一个执行远程主机命令的模块

image

推荐阅读更多精彩内容