原因
安装python3不是什么难事,也不需要重复的炒饭,参考的博客一大堆。写此blog的原因是百度出现的博客,安装python3就是copy其中的命令,但是我搜到的博客,使用时可能与我的环境不同,导致了一些问题,同时也是为了得到一丢丢的升华。
准备
博主安装的是python3.6.
- 下载你需要的python版本
- 确认系统中是否有c的编译器,centos最小安装,或者选择gnome界面不去选择基本的编程环境是不会带gcc环境的。在安装python时,需要用到gcc编译器的。
- yum是需要python2.7支持的
下载python
https://www.python.org/ftp/python/ 这个是所有的python版本存放的地方。我们想使用哪个版本就用哪个。
创建目录:
mkdir /usr/local/python3
改变(change directory)至创建的问题夹中
cd /usr/local/python3
然后获取python3.6.3:
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
安装
然后将获得的python3.6.3压缩文件解压
tar -xvf Python-3.6.3.tgz
然后cd进解压的文件夹
cd Python-3.6.3/
cat readme.rst
此时你就可以看到如何进行安装python3了(不友好的地方就是全是英文),我参考的博客中在README.rst文件中提示的命令中加了一下的内容(README.rst文件中有安装python的基本命令框架,其他博主在其上做了自己的进一步使用,若果只是单纯的抄命令,就会很容易陷入换了环境安装不上的困境)
./configure --prefix=/usr/local/python3Dir
以上命令指定了安装的目录,就不会各个关于python3的目录散落在linux系统各个角落,这也就导致后面使用python或python3运行不了。
然后开始使用gcc编译安装python3
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel
make && make install
编译完成后
cd /usr/local/python3Dir/
此时,在shell中输入
python
还是python2.7
python3
并没什么luan用,这是因为系统会去/usr/bin目录中找对应的python命令
此时,我们需要创建一个软链接
cd /usr/bin
ln -s /usr/local/python3Dir/bin/python3 /usr/bin/python3
或者 ln -s /usr/local/python3Dir/bin/python3 /usr/bin/python
- 我选择的是前一个软链接(这是因为本人安装python3并不打算作为主流使用,同时也是因为yum需要python2.7的支持,在文件//usr/bin/yum用的是第一行可以看到默认的python,当然可以将其改为python2.7)
然后输入python3,就可以了。
在我的一台机子中,修改了,使用yum update出现了’ [Errno 5] [Errno 2] '错误,另一台则没问题。
- 如果选择第二个软链接,则建议将原来的文件备份,并且一定要修改/usr/bin/yum文件的第一行,因为此时你的python使用的python3而不再是python2了
mv /usr/bin/python /usr/bin/python.bak
此时输入python,就会发现是python3.6
后续问题
- 选择第一种软链接方式,发现pip3没有用,同创建python3软链接一样
ln -s /usr/local/python3Dir/bin/pip3 /usr/bin/pip3
- 使用pip3安装virtualenv,发现也没有virtualenv
使用find命令
find / -name virtualenv
就会得到virtualenv所在位置(同pip3),一样在 /usr/local/python3Dir/bin 文件夹中,同理可得
参考博客
参考的博客如下
Centos 7安装python3:https://www.cnblogs.com/simuhunluo/p/7704765.html