Flintx

Centos 7 Python3 以及 pip3 安装

用户不在 sudoers 文件中的解决方法

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
# 切换到root用户权限
$ su
密码:
# 查看/etc/sudoers文件权限,如果只读权限,修改为可写权限
$ ls -l /etc/sudoers
-r--r-----. 1 root root 3938 9月 6 21:01 /etc/sudoers
$ chmod 777 /etc/sudoers
$ ls -l /etc/sudoers
-rwxrwxrwx. 1 root root 3938 9月 6 21:01 /etc/sudoers
# 编辑/etc/sudoers文件,添加要提升权限的用户
$ vim /etc/sudoers
# 找到 root ALL=(ALL) ALL 这句话,修改为:
root ALL=(ALL) ALL
admin ALL=(ALL) ALL
# 用户名 网络中的主机=(执行命令的目标用户) 执行的命令范围
> :x # 保存退出
# 恢复/etc/sudoers的访问权限为 440
$ chmod 440 /etc/sudoers
$ ls -l /etc/sudoers
-r--r-----. 1 root root 3938 9月 6 21:01 /etc/sudoers
# 退出 root,登录 admin,测试 sudo
$ su admin
$ sudo yum install -y openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-deve
# OK

Centos 7 Python3 以及 pip3 安装

安装 Python3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 可能使用到的依赖
$ sudo yum install -y openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-deve
# 下载源码,如果想换其他版本可以去 https://www.python.org/ftp/python/ 上找
$ wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
# 解压文件
$ tar -xzvf Python-3.6.3.tgz
# 配置安装路径, 默认安装路径是usr/bin,但由于已自带python2,使用默认路径会产生冲突,故需要安装在另外的位置
$ cd Python-3.6.3
$ ./configure --prefix=/usr/local
# 编译安装
$ sudo make
$ sudo make install
# 测试(Python-3.6.3目录下)
$ ./python -V
Python 3.6.3

创建 python3 的软链接

1
2
3
4
5
6
7
$ sudo ln -s /usr/local/bin/python3 /usr/bin/python3
# 测试(任意目录下)
$ python3 -V
Python 3.6.3
$ python -V
Python 2.7.5

创建成功后,即可用 python 命令来使用 python2,用 python3 命令来使用 python3

安装 pip3 并配置软链接

一般来说,Centos 7 会自带一个 python 2,但并未安装相应版本的 pip (即pip2),为了便于双版本的无缝切换使用,先安装一个 pip2:

1
2
3
4
5
6
7
8
9
10
11
12
# 首先安装 epel 扩展源
$ sudo yum -y install epel-release
# 安装 python-pip
$ sudo yum -y install python-pip
# 清除 cache
$ sudo yum clean all
# 测试(任意目录下)
$ pip -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)

在高版本的 Python 3 安装中,往往会自带 pip,于是在执行 make install 时可能就已经安装了 pip3。通过以下命令来确认是否安装了pip3:

1
2
$ pip3 -V
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

如果是提示未找到命令,则说明未安装或未链接,可通过源码来安装:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 下载源代码
$ wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
# 解压文件
$ tar -zvxf 9.0.1
$ cd pip-9.0.1
# 使用 Python 3 安装
$ python3 setup.py install
# 配置软链接
$ sudo ln -s /usr/local/bin/pip /usr/bin/pip3
# 测试(任意目录下)
$ pip3 -V
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

更换系统默认 Python 版本

进行完以上几步,即能共存使用两个版本的 Python 代码,若想将 Python 默认版本更改为 python 3(即通过 python 命令而非 python3 命令来使用 Python),还需要额外进行一些配置。

具体方法参考 http://blog.csdn.net/hobohero/article/details/54381475

由于 yum 以及部分应用依赖于 Python 2,推荐还是使用两个版本共存,默认使用Python2 的方案。