回到最初的目的,我是想重新下载一个3.x版本的python,但是发现yum源出现问题,现在yum问题基本解决了,那就开始安装吧,我这里采用的是源码安装,因为官方的软件库里没有3.x版本的,所以yum基本就没有用了,只有自己去python官网去下载。
注意:yum是采用python写的,所以有可能安装新版本后会产生不好的影响,要求我们centos自带的python2尽量不要删除或者修改相关配置!
进入python官网https://www.python.org/downloads/release/python-365/ 的python3.6.5的下载区,下拉页面找到各个版本列表,第一个版本为Gzipped source tarball 操作系统为Source release(源码)的就是linux下的。鼠标停在Gzipped source tarball上,右键出现复制链接地址选项,选择后就有下载地址:https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz,这就是我们需要的tgz格式的安装包。
yum install wget #我下的最小系统里面没有wget工具,所以先要下载
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz #下载到当前目录
下载完后,我们还需要有 解包 —>运行configure脚本 —>编译 —>安装的过程,编译的环境是C语言的环境所以需要gcc和glibc库。一般系统都自己安装了的。
解包
tar -xvf Python-3.6.5.tgz #解包得到Python-3.6.5文件夹
运行configure
cd Python-3.6.5 #进入到该目录下
./configure --prefix=/usr/local/python3.6
# ./ 是运行的意思,运行configure脚本就是为了增加编译参数,这些参数包括增加或删
# 除某些功能,软件装到哪个目录下等等,比如--prefix就是编译安装的路径在
# /usr/local/python3.6 (这个目录要事先被创建好)
编译
make
安装
make install
如果安装过程当中报错显示缺乏某些库,直接用yum源安装该库,然后再次编译安装。
编译安装耗时比较长,而rpm包是将编译好的文件先打包,用户可以直接下载已经编译好的,这样省去了很长的编译时间。
安装完成后,python就已经在我们设置的–prefix=/usr/local/python3.6目录里,而我们之前所在的编译安装时所在的文件夹Python-3.6.5文件夹只是一个安装包。
启动python3.6
方法3 > 方法2 > 方法1
方法1
我们可以先cd /usr/local/python3.6/bin
然后./python3.6
其中./
是运行的意思,/bin
文件夹下存放的是可执行文件,所以我们只要执行其中的python3.6文件就可以启动python3.6 。
方法2:软连接
ln -s /usr/local/python3.6/bin/python3.6 /bin/python3.6
#无论在任何目录下直接输入python3.6都会启动python
#如果不需要此软连接了,命令如下
rm -rf /bin/python3.6
方法3:添加环境变量 PATH
我们平时执行命令其实都是在执行该文件,因为一切皆文件
比如执行ls
,其实是在执行/usr/bin/ls
该文件内容,至于如何找到该命令所对应的文件,可执行命令which ls
。
过程大概是:我们执行 ls ——-> PATH(环境变量) ——-> /usr/bin/ls
[root@localhost bin]# echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/zjx/.local/bin:/home/zjx/bin
从上面我们可以看到环境变量的路径有多个,当我们执行 ls ,系统就会去依次找到相关路径,最终在 /usr/bin 路径下找到与之对应的文件,然后就执行该文件,最终体现为命令的运行。
与之类似,我们可以将python3.6加入到环境变量里面:
vi /etc/profile #这里面有关于PATH的配置文件
在这个文件的末尾添加
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/zjx/.local/bin:/home/zjx/bin:/usr/local/python3.6/bin
export PATH
#注意/usr/local/python3.6/bin 加入到了path里面,以后再次输入python3.6,系
#统就会经过环境变量找到/usr/local/python3.6/bin/python3.6,然后去执行。
#expor PATH 则是定义PATH为全局变量
python3.6 -V #查看python版本
pip3.6 -V #查看pip3.6版本
which pip #查看都有哪些pip路径
之后的虚拟环境安装请参考https://blog.csdn.net/a_lazy_zhu/article/details/73822988