CentOS下安装Python

72d978d16f50c3076690f733ea7004fd

centos下如何安装python

方法一(不推荐,适合于安装一次,第二次最好不要再用这个脚本):

首先,利用python自带的python2.7.5版本编写一个python的安装脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#coding=utf-8
import os
import sys

#安装 wget 以及依赖库

cmd = 'yum install -y wget && yum groupinstall "Development tools" && yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel'
res = os.system(cmd)
if res != 0:
print('安装依赖库失败,请检查repo库或者网络是否链接')
sys.exit(1)

if os.getuid() == 0:
pass
else:
print('当前用户不是root用户,请以root用户的身份执行脚本')
sys.exit(1)


version = raw_input('请输入要安装的python版本号:(2.7/3.5)')

if version == '2.7':
url = 'https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz'
elif version == '3.5':
url = 'https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgz'
else:
print('请输入2.7或者3.5')
sys.exit(1)

cmd = 'wget ' + url
res = os.system(cmd)
package_name = ''
if res != 0:
print('下载源码包失败,请检查网络')
sys.exit(1)

if version == '2.7':
package_name = 'Python-2.7.16'
python_dir_name = 'python2_7_16'
ver = 'python'
else:
package_name = 'Python-3.5.6'
python_dir_name = 'python3_5_6'
ver = 'python3'
cmd = 'tar -xf ' + package_name + '.tgz'
res = os.system(cmd)
if res != 0:
os.system('rm -rf ' + package_name + '.tgz')
print('解压源码包失败,请重新运行这个脚本下载源码包')
sys.exit(1)

cmd = 'cd ' + package_name + '&& ./configure --prefix=/usr/local/'+ python_dir_name + ' && make && make install'
res = os.system(cmd)
if res != 0:
print('编译python源码失败,请检查是否缺少依赖库')
sys.exit(1)

cmd = 'mv /usr/bin/python /usr/bin/python2.7.5 && ln -s /usr/local/' + python_dir_name+ '/bin/' + ver + ' /usr/bin/python'
res = os.system(cmd)
if res != 0:
print('建立软连接失败,请检查/usr/bin 与 /usr/local 目录')

安装完成后,会发现yum无法使用
在终端下执行:

  • vi usr/bin/yum
  • vi /usr/libexec/urlgrabber-ext-down
  • 第一行的python均修改为python2

方法二:

在终端执行以下操作:

  • yum install -y wget && yum groupinstall “Development tools” && yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

  • wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz

  • tar -xf Python-2.7.16.tgz

  • cd Python2.7.16

  • ./configure –prefix=/usr/local/python2_7_16

  • make && make install

  • mv /usr/bin/python /usr/bin/python2.7.5

    注意,这里给以前的软连接重命名之后,执行对应的重命名名称即可执行以前的python版本,比如上边的python2.7.5


嘟嘟嘟,请注意啦!
解释:

  1. 比如,输入 python 进入2.7.16 的python版本 | 输入python2.7.5进入2.7.5的python版本
  2. 与 mv /usr/bin/python /usr/bin/python2.7.5 命令的python2.7.5息息相关,这只是个名字,可以随便起
  3. 比如也可以把这条命令写成 mv /usr/bin/python /usr/bin/python275,执行 python275 效果是一样的

设置软连接

  • ln -s /usr/local/python2_7_16/bin/python /usr/bin/python

安装完成后,会发现yum无法使用:

  • vi .usr/bin/yum
  • vi /usr/libexec/urlgrabber-ext-down
  • 第一行的python均修改为python2


嘟嘟嘟,请注意啦!
特别注意:

mv /usr/bin/python /usr/bin/python2.7.5 与 mv /usr/bin/python/ /usr/bin/python2.7.5/ 完全不同,这一点多加注意我的朋友们

  1. /usr/bin 是一个很重要的文件,最开始的时候 /usr/bin/python -> python2的一个软连接
  2. 由于我们执行了 mv /usr/bin/python /usr/bin/python2.7.5 , 给软连接重命名,就变成了 /usr/bin/python2.7.5 -> python2,以后再想执行python2这个版本的python,可以使用python2.7.5
  3. 没有了 /usr/bin/python这个软连接了,于是我们就可以新建一个/usr/bin/python软连接了
  4. ln -s /usr/local/python2_7_16/bin/python /usr/bin/python来设置自己的软连接,以后在终端输入python就是自己设置的版本的python了,大概就是这个意思


实际情况展示:

1
2
3
4
5
[root@localhost python_dir]# ll /usr/bin/pyth*
lrwxrwxrwx. 1 root root 34 8月 11 22:51 /usr/bin/python -> /usr/local/python2_7_16/bin/python
lrwxrwxrwx. 1 root root 9 8月 11 21:25 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 8月 4 2017 /usr/bin/python2.7
lrwxrwxrwx. 1 root root 7 8月 11 21:25 /usr/bin/python2.7.5 -> python2

特别问题:*为软连接重命名,但是软连接中已经有/usr/bin/python2.7.5这个名字了*

1
2
3
4
5
6
7
[root@localhost python_dir]# mv /usr/bin/python /usr/bin/python2.7.5
mv:是否覆盖"/usr/bin/python2.7.5"? y

[root@localhost python_dir]# ll /usr/bin/pyth*
lrwxrwxrwx. 1 root root 9 8月 11 21:25 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 8月 4 2017 /usr/bin/python2.7
lrwxrwxrwx. 1 root root 34 8月 11 22:51 /usr/bin/python2.7.5 -> /usr/local/python2_7_16/bin/python

细心的话会发现:

lrwxrwxrwx. 1 root root 7 8月 11 21:25 /usr/bin/python2.7.5 -> python2 被覆盖了

其实没多大影响,要是还是想用2.7.5版本的python,输入 python2 即可,因为python2指向python2.7

lrwxrwxrwx. 1 root root 9 8月 11 21:25 /usr/bin/python2 -> python2.7

或者自己重新为python2自定义添加一个软链接:

1
[root@localhost python_dir]# ln -s /usr/bin/python2 /usr/bin/python275

想使用python2.7版本的python的时候,在终端输入 python275 即可

本文标题:CentOS下安装Python

文章作者:尚先森

发布时间:2019年08月24日 - 16:27:31

最后更新:2023年02月20日 - 17:48:13

原始链接:https://imauu.gitee.io/2019/08/24/CentOS下安装Python/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

尚先森 wechat
有任何问题可以扫描上方二维码私聊我哦😊
您的支持是我创作的最大动力^_^