RHEL7环境下安装python3.3

背景:rhel7.3

系统中已经安装python2.7,现在要实现python的升级;


首先下载源tar包

http://www.python.org/ftp/python


下载完成后到下载目录下,解压

tar xf Python-3.3.0.tgz


进入解压缩后的文件夹
cd Python-3.3.0


在编译前先在/usr/local建一个文件夹python3(作为python的安装路径,以免覆盖老的版本)
mkdir /usr/local/python3


安装依赖包

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-deve

yum -y install gcc gcc-c++


开始编译安装
./configure --prefix=/usr/local/python3
make
make install


此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字


之前python的链接情况如下:


Screenshot from 2018-08-10 15-28-30.png



链接到别名,不然新版本的不会生效


mv python2.7 python2.7_old


再建立新版本python的链接
ln -s /usr/local/python3/bin/python3  /usr/bin/python2.7

此时链接如下:


Screenshot from 2018-08-10 20-05-33.png



再去查看python信息

Screenshot from 2018-08-10 19-43-49.png


这种方法虽然能安装成功,但是它带来了新的问题,比如yum不能正常用了
修改/usr/bin/yum的第一行为:
如下指定就好了:


Screenshot from 2018-08-10 19-45-58.png


如下,yum可以正常使用


Screenshot from 2018-08-10 19-47-40.png


安装pip

pip是python的管理工具

官网下载:

pip-18.0

Screenshot from 2018-08-10 20-31-26.png


报错没有setuptools模块


下载:setuptools-27.3.1.tar.gz

下载报本根据系统已由的版本去下载合适的,不然也会用不了;

tar xf setuptools-27.3.1.tar.gz

cd setuptools-27.3.1

python setup.py install

没有报错,如下

Screenshot from 2018-08-10 21-06-06.png


如下再去安装:

[root@python ~]# cd pip-18.0/
[root@python pip-18.0]# python setup.py install


Screenshot from 2018-08-10 21-07-39.png


若没有pip命令,就去添加环境变量

vim /etc/profile

Screenshot from 2018-08-10 21-11-08.png

source /etc/profile       //使生效


Screenshot from 2018-08-10 21-11-58.png


pip的使用


1

2

pip show --files SomePackage      pip查看已安装的包

1

2


pip list --outdated        pip检查哪些包需要更新  


pip install --upgrade SomePackage     pip升级包

pip uninstall SomePackage      pip卸载包


pip的参数可以通过获取帮助去查看

# pip --help

 

Usage:   

  pip <command> [options]

 

Commands:

  install                     安装包.

  uninstall                   卸载包.

  freeze                      按着一定格式输出已安装包列表

  list                        列出已安装包.

  show                        显示包详细信息.

  search                      搜索包,类似yum里的search.

  wheel                       Build wheels from your requirements.

  zip                         不推荐. Zip individual packages.

  unzip                       不推荐. Unzip individual packages.

  bundle                      不推荐. Create pybundles.

  help                        当前帮助.

 

General Options:

  -h, --help                  显示帮助.

  -v, --verbose               更多的输出,最多可以使用3次

  -V, --version               现实版本信息然后退出.

  -q, --quiet                 最少的输出.

  --log-file <path>           覆盖的方式记录verbose错误日志,默认文件:/root/.pip/pip.log

  --log <path>                不覆盖记录verbose输出的日志.

  --proxy <proxy>             Specify a proxy in the form [user:passwd@]proxy.server:port.

  --timeout <sec>             连接超时时间 (默认15秒).

  --exists-action <action>    Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup.

  --cert <path>               证书.



有时在安装或者更新包的时候会发生下面的错误:


Screenshot from 2018-08-10 21-19-07.png

Screenshot from 2018-08-10 21-25-19.png


解决方法,设置超时时间

pip --default-timeout=100 install -U Pillow