环境的搭建是进行开发的第一步,python因为存在python2和python3两个版本,让在建立python环境时造成不便,并且由于在Linux环境下不像Window环境安装那么友好,存在一些小坑。本教程记录了CentOS7下安装python3.8的过程和注意事项。

一、查看系统版本

1
[root@localhost ~]# cat /etc/centos-release CentOS Linux release 7.2.1511 (Core)
1
[root@localhost ~]# uname -a Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

查看python版本

1
[root@localhost ~]# python -V Python 2.7.5

系统默认安装了Python 2.7.5

二、安装依赖

1
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

如果有提示一路选择Y就可以。

安装libffi-devel依赖。

1
yum install libffi-devel -y

Python安装及依赖问题解决指南

1. Python安装前的注意事项

在安装Python之前,确保系统中没有其他版本的Python,以免产生版本冲突。如果遇到安装问题,可以参考以下步骤解决。

1.1 错误情况如果在安装Python3后,尝试安装Flask、uWSGI等依赖时出现错误,例如:ModuleNotFoundError: No module named '_ctypes',这通常意味着Python3的某些依赖包没有正确安装。

1.2 解决方案为了解决这个问题,需要安装缺失的依赖包,并重新编译Python3。具体步骤如下:

  • 确保系统中安装了所有必要的依赖包。
  • 重新下载Python源码包,并按照官方文档重新编译安装。

2. 下载Python源码包要获取Python的最新版本,可以访问Python官网。截至目前,最新版本是Python 3.10。下载源码包后,按照以下步骤进行安装:

2.1 下载步骤1. 访问Python官网并选择最新版本。2. 下载对应系统的源码包。

2.2 安装步骤1. 解压下载的源码包。2. 打开终端或命令提示符,进入源码包目录。3. 运行./configure命令配置安装选项。4. 运行make命令编译源码。5. 运行make install命令安装Python。

3. 参考链接有关Python安装的更多信息和解决方案,可以参考这篇博客

下载Python源码包

下载稳定版本3.8版

1
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz

四、解压安装python源码包

1、解压

1
tar -zxvf Python-3.8.12.tgz

2、安装

进入解压后的目录进行编译和安装

1
cd Python-3.8.12/ [root@localhost Python-3.8.12]#
1
[root@localhost Python-3.8.12]# ./configure
1
[root@localhost Python-3.8.12]# make&&make install

执行完后显示安装成功

pyhont安装成功

3、设置Python版本软链接

在成功安装了Python 3.8.12之后,可能会遇到默认输入python时显示的是Python 2.7版本的问题。为了解决这个问题,我们可以通过修改软链接的方式,将默认的python命令指向新安装的Python 3.8.12版本。以下是详细步骤:

步骤1:查找Python版本位置首先,我们需要确定默认Python和新安装的Python 3的位置。可以使用以下命令来查找:

bashwhich pythonwhich python3 这将分别显示默认Python和Python 3的安装路径。

步骤2:删除旧的软链接(如果存在)如果系统中已经存在指向旧版本的Python软链接,我们需要先删除它。可以使用以下命令:

bashsudo rm /usr/bin/python

步骤3:创建新的软链接接下来,创建一个新的软链接,将python命令指向Python 3.8.12。使用以下命令:

bashsudo ln -s /path/to/python3.8.12 /usr/bin/python 请将/path/to/python3.8.12替换为实际的Python 3.8.12安装路径。

步骤4:验证软链接完成软链接设置后,可以通过输入以下命令来验证软链接是否成功:

bashpython --version 这应该会显示Python 3.8.12的版本信息。

注意事项

  • 在执行上述操作时,需要具有相应的系统权限。
  • 确保替换正确的Python 3.8.12安装路径。
  • 如果系统中有多个Python版本,请谨慎操作,以免影响其他依赖Python的程序。
1
[root@localhost Python-3.8.12]# which python /usr/bin/python
1
[root@localhost Python-3.8.12]# which python3 /usr/local/bin/python3

可以看到默认的python路径为/usr/bin/python,python3的路径为/usr/local/bin/python3
将python3的软链接加到python上

1
[root@localhost Python-3.8.12]# mv /usr/bin/python /usr/bin/python.bak [root@localhost Python-3.8.12]# ln -s /usr/local/bin/python3 /usr/bin/python

通过python -V命令查看python版号,这时python的版本已经是3.8.12了。

1
[root@localhost Python-3.8.12]# python -V Python 3.8.12

pip命令也可以修改,python3.8.12默认的pip是pip3,CentOS7的python2.7默认没有安装pip.
输入pip命令的时候提示命令没有找到

1
[root@localhost Python-3.8.12]# pip bash: pip: command not found...

这时也可以通过建立软链接的方式将pip命令链接到pip3上。首先看pip3命令在哪?

1
[root@localhost Python-3.8.12]# which pip3 /usr/local/bin/pip3

然后建立pip到pip3的软链接

1
[root@localhost Python-3.8.12]# ln -s /usr/local/bin/pip3 /usr/bin/pip
1
[root@localhost Python-3.8.12]# pip -V pip 21.1.1 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)

五、配置yum

安装python3改完软链接以后发现yum命令报错了,yum是依赖python2.7的,你把python改成了3.8了,所以报错了。

1
[root@localhost Python-3.8.12]# yum File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax

可以修改yum里对python2的依赖即可。虽然安装了python3但是系统里python2依旧还在系统里,可以通过python2来指定用python2.7的命令,首先来看下python2的命令在哪里

1
[root@localhost ~]# which python2 /usr/bin/python2

可以cd到/usr/bin目录下 通过ls -alh|grep python查看python命令的详细情况。

1
[root@localhost bin]# ls -alh|grep python

python命令软链接

可以看到python软连接是执行的python3命令,python2是执行的python2.7的命令

1
vi /usr/libexec/urlgrabber-ext-down

修改对python的依赖,修改成python2或python2.7都可以。

修改依赖

1
vi /usr/bin/yum

修改依赖

修改完这两个文件后,再敲yum命令就不会报错了。

至此CentOS7环境下python3.8.12已经成功安装!

作者博客:http://xiejava.ishareread.com/