CentOS 7.2 安裝python3.6,兼容原有的2.7
很早以前就想著要寫博客,因為做了很多事情,總是記不住,能寫下來,就當是日記了.
我這次想要在我的centos7裏面安裝python3.6,並且能與原來的2.7兼容.
1、查看原來的python版本
[root@python ~]# python
Python 2.7.5 (default, Nov 20 2015, 02:00:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
原本的版本是2.7.5,我現在準備再安裝一個3.6的版本,而且安裝後腰註意一個問題,因為centos的yum工具使用的python是2.7,需要註意
2、下載安裝包,工欲善其事必先利其器,沒有安裝包,巧婦難為無米之炊嘛
python的安裝包可以到python的官網地址裏面去下載(https://www.python.org/ftp/python)
因為我的環境是windows上面的vm虛擬機裏面的centos7,不想下載來本地再傳進去.所以直接使用wget下載到centos裏面去
(https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz)
[root@python ~]# wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
-bash: wget: 未找到命令
[root@python ~]# yum install wget
已加載插件:fastestmirror
base | 3.6 kB 00:00
......................
已安裝:
wget.x86_64 0:1.14-15.el7_4.1
完畢!
[root@python ~]# wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
............................................
正在連接 www.python.org (www.python.org)|151.101.72.223|:443... 已連接。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:22673115 (22M) [application/octet-stream]
正在保存至: “Python-3.6.3.tgz”
0% [ ] 183,323 2.05KB/s 剩余 3h 17m
下載完成以後,解壓包裏面的文件
[root@python ~]# ls
anaconda-ks.cfg Python-3.6.3.tgz
[root@python ~]# tar -zxvf Python-3.6.3.tgz
Python-3.6.3/
Python-3.6.3/Doc/
................................
3、有了安裝的包以後,我們再來解決一個linux系統安裝軟件必須的一個步驟,那就是安裝一些必要的依賴包.
依賴這種東西,不好說,我只能是安裝可能需要到的東西
[root@python ~]# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
...............
已安裝:
bzip2-devel.x86_64 0:1.0.6-13.el7 expat-devel.x86_64 0:2.1.0-10.el7_3
gdbm-devel.x86_64 0:1.10-8.el7 openssl-devel.x86_64 1:1.0.2k-8.el7
readline-devel.x86_64 0:6.2-10.el7 sqlite-devel.x86_64 0:3.7.17-8.el7
......................
完畢!
4、安裝了依賴包,就可以開始編譯安裝python了
[root@python Python-3.6.3]# ./configure --prefix=/usr/local/python3;make;make install
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
..........................
checking for cl.exe... no
configure: error: in `/root/Python-3.6.3‘:
configure: error: no acceptable C compiler found in $PATH
See `config.log‘ for more details
make: *** 沒有指明目標並且找不到 makefile。 停止。
make: *** 沒有規則可以創建目標“install”。 停止。
[root@python Python-3.6.3]#
這個錯誤需要安裝gcc來解決
[root@python Python-3.6.3]# yum install gcc
.....................................
已安裝:
gcc.x86_64 0:4.8.5-16.el7
..................
完畢!
安裝了gcc,就接著編譯安裝python
[root@python Python-3.6.3]# ./configure --prefix=/usr/local/python3;make;make install
......................
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-9.0.1 setuptools-28.8.0
這就安裝完了.
5、修改原有python指向的2.7為3.5,並且修改yum配置
[root@python bin]# ll /usr/bin/py*
-rwxr-xr-x. 1 root root 78 11月 20 2015 /usr/bin/pydoc
lrwxrwxrwx. 1 root root 7 10月 30 19:00 /usr/bin/python -> python2
lrwxrwxrwx. 1 root root 9 10月 30 19:00 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月 20 2015 /usr/bin/python2.7
這裏的/usr/bin/python -> python2是
原有的python使用的是/usr/bin/python2.7這個版本,我們這裏就要修改成3.6的版本
首先是把原來的備份,要不然出了問題修復起來麻煩,備份後就可以將python3軟連接到/usr/bin/目錄下
lrwxrwxrwx. 1 root root 7 10月 30 19:00 /usr/bin/python -> python2
lrwxrwxrwx. 1 root root 9 10月 30 19:00 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月 20 2015 /usr/bin/python2.7
[root@python bin]# mv /usr/bin/python /usr/bin/python.bak
[root@python bin]# ll /usr/bin/py*
-rwxr-xr-x. 1 root root 78 11月 20 2015 /usr/bin/pydoc
lrwxrwxrwx. 1 root root 9 10月 30 19:00 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月 20 2015 /usr/bin/python2.7
lrwxrwxrwx. 1 root root 7 10月 30 19:00 /usr/bin/python.bak -> python2
[root@python bin]# ln -s /usr/local/python3/bin/python3 /usr/bin/python
然後測試一下當前環境使用的python是什麽版本
[root@python bin]# python
Python 3.6.3 (default, Nov 9 2017, 00:02:58)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
我們看到的是新裝的3.6版本了,接下來就去把yum的配置文件修改掉
[root@python bin]# vi /usr/bin/yum
#!/usr/bin/python
import sys
try:
import yum
except ImportError:
print >> sys.stderr, """\
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
%s
上面的#!/usr/bin/python需要修改為#!/usr/bin/python2.7,修改後使用yum測試一下yum工具是否正常,修改後使用yum,發現有報錯:
Downloading packages:
File "/usr/libexec/urlgrabber-ext-down", line 28
except OSError, e:
^
SyntaxError: invalid syntax
由於用戶取消而退出
查看/usr/libexec/urlgrabber-ext-down文件,發現裏面也有python參數,同樣的修改之
[root@python bin]# cat /usr/libexec/urlgrabber-ext-down
#! /usr/bin/python
# A very simple external downloader
# Copyright 2011-2012 Zdenek Pavlas
上面的#!/usr/bin/python需要修改為#!/usr/bin/python2.7,修改後使用yum再測試,正常了
[root@python bin]# yum install zip
.......................................
已安裝:
zip.x86_64 0:3.0-11.el7
完畢!
OK,查看系統裏面的python2和3共存
[root@python bin]# python
Python 3.6.3 (default, Nov 9 2017, 00:02:58)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
[root@python bin]# python2.7
Python 2.7.5 (default, Nov 20 2015, 02:00:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
OK,我的centos7安裝python3.6就算完成了
本文出自 “一路向上” 博客,請務必保留此出處http://zhenghong.blog.51cto.com/1676992/1979991
CentOS 7.2 安裝python3.6,兼容原有的2.7