CentOS 7下Python 2.7升级至Python 3.6.1的实战教程
简介
本文将介绍在CentOS 7下如何将系统自带的Python 2.7版本升级到Python 3.6.1版本的具体步骤,同时也会对升级过程中可能会遇到的一些问题进行解决和说明。
步骤
1. 安装必备依赖
升级Python 3.6.1需要一些必要的依赖,这里我们需要先安装这些必备依赖。
sudo yum install gcc openssl-devel bzip2-devel zlib-devel readline-devel sqlite-devel
2. 下载并解压源码包
从Python官网下载Python3.6.1源码包,并解压到目录/usr/src/
下。
cd /usr/src/
sudo wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
sudo tar xzf Python-3.6.1.tgz
3. 编译与安装Python3.6.1
进入解压后的Python源码目录,配置编译选项并进行编译和安装。
cd Python-3.6.1
sudo ./configure --enable-optimizations
sudo make altinstall
altinstall
选项表示将Python-3.6.1安装到一个独立的目录,不会覆盖系统自带的Python 2.7版本,也不会影响系统其它软件的正常运行。
4. 配置环境变量
为了使用新安装的Python 3.6.1版本,我们需要将它的路径添加到系统的环境变量PATH
中。在/etc/profile
文件末尾添加以下内容
sudo vim /etc/profile
末尾添加
# add Python3.6.1 path
export PATH=/usr/local/bin:$PATH
5. 测试Python3.6.1是否安装成功
执行以下命令,确认Python3.6.1版本已经成功安装。
python3.6 -V
执行后,将会输出类似如下的版本信息:
Python 3.6.1
至此,我们已经成功升级了CentOS 7下的Python 2.7版本到Python 3.6.1版本。
常见问题
1. Python 3.6.1的命令名称修改
默认情况下,Python 3.6.1的命令名称是python3.6
而非python
。如果想让Python 3.6.1的命令名称变为python
,可以尝试以下步骤:
sudo mv /usr/bin/python /usr/bin/python2.7
sudo ln -s /usr/local/bin/python3.6 /usr/bin/python
2. python命令找不到
在配置环境变量时,如果只是将Python的路径添加到了普通用户的环境变量PATH
中,而没有添加到root用户的环境变量中,则在root用户下,执行python命令时会提示“命令未找到”的错误提示。此时,可以执行以下命令,将Python的路径添加到root用户的环境变量中。
sudo visudo
在打开的文件中,找到以下行,将secure_path
改为以下内容:
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
然后退出并保存文件。重新打开终端即可。
示例
1. Django应用迁移至Python 3.6.1
在原来使用Python 2.7版本的Django应用上,执行以下步骤,可以迁移至Python 3.6.1版本:
# 安装Django 2.2.13版本
pip install django==2.2.13
# 使用下面的命令检查是否需要修改代码
python3.6 -m compileall <your_django_project_path>
# 如果上一步检查到错误,可以执行下面的命令解决
2to3 -w <your_django_project_path>
2. Ansible使用升级Python版本
在原来使用Python 2.7版本的Ansible中,执行以下步骤,可以使用Python 3.6.1升级Ansible:
# 安装EPEL Repository
sudo yum install epel-release
# 安装Python 3.6.1
sudo yum install python36
# 使用update-alternatives命令更新Python命令
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
# 配置Python环境变量
sudo vim /etc/profile
# add Python3.6 path
export PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/bin:/usr/local/lib/python3.6
总结
通过以上步骤,我们已经成功将CentOS 7下的Python 2.7版本升级到Python 3.6.1版本,并对升级过程中可能遇到的问题给出了解决方案。希望本文对你在实际应用中遇到的问题有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CentOS 7下Python 2.7升级至Python3.6.1的实战教程 - Python技术站