第一章 Python3 源码安装(Linux 版)
2018-12-23 本文已影响1453人
运维开发_西瓜甜
一、源码安装
安装依赖软件包
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时需要。
配置共享库文件
- 为所有用户设置共享库目录
用 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.png假如上面显示的含有 python3.6 就没问题了,说名 pip3 安装的模块会安装到上面显示的目录下
特殊问题
假如 Python Shell 中敲击方向键显示「[[C[[D」
可以安装以下包
一般情况下你不需要执行下面的安装命令。
pip3 install gnureadline
二、 配置使用本地的源安装第三方模块
创建配置文件
-
配置 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
示例:
比如安装一个执行远程主机命令的模块