linux下编译python3.6.3
下载python3.6编译安装
到python官网下载https://www.python.org对应的源码(source code)
下载最新版源码,使用make altinstall,不要使用make install,看下载文件的readme文件是说altinstall解决多个python版本共存的问题,因为linux很多都自带了python2了,所以安装的时候可能会冲突,总之用make altinstall就可以了兼容多个版本,不管了。
#进入登陆用户目录,编译的时候要切换管理员权限
cd $home
#取得安装包,当然本地下载传上去也可以,并解压
tar -xzvf Python-3.6.3.tgz
cd Python-3.6.3
#把Python3.6安装到 /usr/local 目录,指定目录--prefix
./configure --prefix=/usr/local
#make编译并安装,可能需要5到10分钟,这个时候去喝个茶
make
make altinstall
漫长的等待之后
python3.6程序的执行文件:/usr/local/bin/python3.6
python3.6应用程序目录:/usr/local/lib/python3.6
pip3的执行文件:/usr/local/bin/pip3.6
pyenv3的执行文件:/usr/local/bin/pyenv-3.6
运行python3.6试一下
直接在命令行输入python可能会出现是python2.7
#打出环境变量看一下
echo $PATH
#/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
可以看到python3.6,pip3.6(包管理)等可执行文件都被加到环境变量里面去了,这个时候在终端敲入python会出来2.7的提示,那是因为python被连接到python2.7上了,一般linux的yum会依赖于python2.7的环境,所以本机很有可能有python2.7,看一下
cd /usr/bin
ls -l |grep python
lrwxrwxrwx 1 root root 9 Oct 19 16:03 python -> python2
lrwxrwxrwx 1 root root 9 Oct 19 16:03 python2 -> python2.7
-rwxr-xr-x 1 root root 7136 Aug 4 08:40 python2.7
-rwxr-xr-x 1 root root 1835 Aug 4 08:39 python2.7-config
lrwxrwxrwx 1 root root 16 Oct 19 16:06 python2-config -> python2.7-config
lrwxrwxrwx 1 root root 14 Oct 19 16:06 python-config -> python2-config
是的,python被链接到2.7了,要想使用python3.6有两个办法:修改上面的python链接指定到python3.6的路径,有可能会影响yum的运行
cd /usr/bin
mv python python.bak
ln -s /usr/local/bin/python3.6 /usr/bin/python
ln -s /usr/local/bin/pip3.6 /usr/bin/pip
改完直接运行python打出的环境就是python3.6了运行python的时候输入python3.6,pip3.6 等命令代替python,pip命令。
如果不想影响yum的运行,可以按照下面的办法改一下(没有试过):
更改yum脚本的python依赖
# cd /usr/bin
# ls yum*
yum yum-config-manager yum-debug-restore yum-groups-manager
yum-builddep yum-debug-dump yumdownloader
更改以上文件头为
#!/usr/bin/python 改为 #!/usr/bin/python2
修改gnome-tweak-tool配置文件
# vi /usr/bin/gnome-tweak-tool
#!/usr/bin/python 改为 #!/usr/bin/python2
修改urlgrabber配置文件
# vi /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python 改为 #!/usr/bin/python2