最近安装了新系统centos7,本身自带python2.7,但是由于需要使用python3 来运行一些应用,所以想到在centos环境下安装python3,并保证其和python2 可以共存。
步骤如下:
1. 确认 现有python 版本 python -V
2. 查询执行文件的位置 which python
3. 安装相关包,用于下载编译python3
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
或者如下命令
yum -y install bzip2 bzip2-devel
yum -y install ncurses ncurses-devel
yum -y install readline readline-devel
yum -y install openssl openssl-devel
yum -y install openssl-static
yum -y install xz lzma xz-devel
yum -y install sqlite sqlite-devel
yum -y install gdbm gdbm-devel
yum -y install tk tk-devel
yum -y install ncurses ncurses-devel
4. 执行文件在/usr/bin/ 目录下,切换到该目录下执行 ll python* 命令查看
5. 可以看到 只有 python2, 将其做备份
mv python python.bak
mv python-config python-config.bak
6. 下载 源文件
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz
7.解压
tar -xvJf Python-3.6.4.tar.xz
切换进入
cd Python-3.6.4
8. 配置环境
./configure prefix=/usr/local/python3
9.
运行后,提示我如下内容:(每个人出现的问题可能不同)
If you want a release build with all optimizations active (LTO, PGO, etc), please run ./configure --enable-optimizations.该提示 原因:
https://stackoverflow.com/questions/41405728/what-does-enable-optimizations-do-while-compiling-python?noredirect=1
10. 编译安装
make && make install
安装完毕,/usr/local/目录下就会有python3了。
11. 安装成功,可能已经安装好可执行文件的链接
很神奇的事情是 执行优化命令后 python3 的可执行文件 和 其他配置的执行文件 全部生成好, 但是并不在配置时的位置。
最后在文件系统中搜索,发现了安装的位置, 估计这个安装的配置时优化命令自动设置的,和 第8步中 配置环境 的设置不同, 应该是覆盖掉了。
在 /usr/bin 中 创建 python3 可执行文件的链接
ln -s /usr/local/bin/python3 /usr/bin/python3
如果没有执行优化命令(即第9步中的命令), 那么 在 /usr/bin 中生成链接:
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
此时, python3 的安装目录为 /usr/local/python3