美文网首页渣男的道
CentOS7安装python3

CentOS7安装python3

作者: a564c12b3104 | 来源:发表于2018-11-05 16:40 被阅读0次

CentOS7安装python3

路上有多少个坑,只有自己走过才知道。可能你遇到到我没遇到的问题,但是终点只有一个。

首先,你要知道系统现在的python的位置在哪儿:

[admin@localhost home]$ whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz

可以知道我们的python在 /usr/bin目录中

[admin@localhost home]$ cd /usr/bin/
[admin@localhost bin]$ ll python*
lrwxrwxrwx. 1 root root    7 10月 22 11:05 python -> python2
lrwxrwxrwx. 1 root root    9 10月 22 11:05 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 7月  13 21:07 python2.7

可以看到,python指向的是python2,python2指向的是python2.7,因此我们可以装个python3,然后将python指向python3,然后python2指向python2.7,那么两个版本的python就能共存了。

下载python3 的依赖包,用于编译python3:

(sudo) yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

默认centos7没有安装pip,安装python2的pip

# 先检查能不能 ping 通

# 运行这个命令添加epel扩展源
(sudo) yum -y install epel-release

--------------------------
如果不用python2的pip可以不用安装
# 安装pip
(sudo) yum install python-pip

# 用pip更新自己
(sudo) pip install --upgrade pip
--------------------------

用wget下载python3的源码包

wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz

编译安装python3源码包

# 解压
xz -d Python-3.6.4.tar.xz
tar -xf Python-3.6.4.tar

# 进入Python-3.6.4
cd Python-3.6.4

# 指定安装目录
(sudo) ./configure prefix=/usr/local/python3

# 安装, 这一步一定要切换到root,不知道为什么其他用户提示权限不够
su root
make && make install

如果最后没提示出错,就代表正确安装了,在/usr/local/目录下就会有python3目录

添加软链接

# 将原来的链接备份
mv /usr/bin/python /usr/bin/python.bak

# 添加python3的软链接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3

# 测试是否安装成功了
[root@localhost Python-3.6.4]# python -V
Python 3.6.4
[root@localhost Python-3.6.4]# python2 -V
Python 2.7.5
[root@localhost Python-3.6.4]# python3 -V
Python 3.6.4

更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用

vi /usr/bin/yum
把#! /usr/bin/python修改为#! /usr/bin/python2

vi /usr/libexec/urlgrabber-ext-down
把#! /usr/bin/python 修改为#! /usr/bin/python2

这个是防火墙保存
vi /usr/bin/firewall-cmd
把#!/usr/bin/python -Es 改为 #!/usr/bin/python2.7 -Es
vi /usr/sbin/firewalld
把#!/usr/bin/python -Es 改为 #!/usr/bin/python2.7 -Es

配置pip

查看pip

[root@localhost Python-3.6.4]# pip -V
pip 18.1 from /usr/lib/python2.7/site-packages/pip (python 2.7)

设置把pip指向python3,(安装好python3后,里面就已经下载了pip3了,无需额外下载)

# 进入usr/bin目录
cd /usr/bin

# 查看pip前缀的文件
ll pip*

# 备份pip文件
mv /usr/bin/pip /usr/bin/pip.bak

# 重新设置pip文件
ln -s /usr/local/python3/bin/pip /usr/bin/pip
ln -s /usr/local/python3/bin/pip /usr/bin/pip3

# 用pip更新自己
(sudo) pip install --upgrade pip

# 测试是否安装成功了
[root@localhost bin]# pip -V
pip 9.0.1 from /usr/local/python3/lib/python3.6/site-packages (python 3.6)
[root@localhost bin]# pip2 -V
pip 18.1 from /usr/lib/python2.7/site-packages/pip (python 2.7)
[root@localhost bin]# pip3 -V
pip 9.0.1 from /usr/local/python3/lib/python3.6/site-packages (python 3.6)

安装virtualenvwrapper

pip install virtualenvwrapper

注意: windows安装需要在后面加上-win:

在.bashrc文件中加入下行环境变量(注意:下面的路径可能有不一样,确定好再写)

# 指定python变量
echo 'export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python' >> .bashrc

# 设置虚拟环境安装位置
echo 'export WORKON_HOME=/var/envs' >> .bashrc

# 指定virtualenvwrapper.sh 文件
echo 'source /usr/local/python3/bin/virtualenvwrapper.sh' >> .bashrc

# 也就是在 .bashrc 后面追加

运行:
source ~/.bashrc

对于找不到 virtualenv 的报错解决
出现这种错误,是因为 virtualenv 这个基础依赖包被安装在默认 Python 目录下,就需要做一个软连接 ln -s。
ERROR: virtualenvwrapper could not find virtualenv in your path
首先还是用 find / -name "virtualenv" 去找到位置
sudo find / -name "virtualenv"
/usr/local/python3/bin/virtualenv
最后进行软连接
sudo ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

相关文章

网友评论

    本文标题:CentOS7安装python3

    本文链接:https://www.haomeiwen.com/subject/duwsxqtx.html