Install Python 3.9 on CentOS 8 / CentOS 7

本文详细指导如何在CentOS8和CentOS7上安装Python3.9,包括安装依赖、下载最新版本、配置、编译和使用pip安装其他工具如awscli的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

In today’s guide you’ll learn to install Python 3.9 on CentOS 8 / CentOS 7 Linux system. Python is general-purpose, interpreted and high-level programming language originally created by Guido van Rossum. Python is created for simplicity, deep integration and great extensibility. You can achieve much more with Python using powerful libraries and tools, including Django, Pygame, Matplotlib, Plotly, e.t.c.

In the next sections we look at the installation steps of Python 3.9 on CentOS 8 / CentOS 7. If you’re interested in a full list of features shipped in Python 3.9 check the official release notes.

Install Python 3.9 on CentOS 8 / CentOS 7

Python is a cross-platform software package meaning it can run on Linux, Windows, macOS, and BSD systems. As of this article update, the exact latest release of Python 3.9 is version Python 3.9.7. This is the version of Python that will be installed in this tutorial.

Step 1: Install Python Dependencies

Login to your CentOS 8 / CentOS 7 system as root or user with sudo privileges.

ssh *username*@*serveripaddress*

Then do system update

sudo yum -y install epel-release
sudo yum -y update

Reboot after the upgrade before you continue to install dependencies

sudo reboot

Install required software development tools required to build Python 3.9 on CentOS 8 / CentOS 7:

sudo yum groupinstall "Development Tools" -y
sudo yum install openssl-devel libffi-devel bzip2-devel -y

Confirm gcc is available:

$ *gcc --version
gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Step 2: Download latest Python 3.9 Archive

Ensure wget is installed:

sudo yum install wget -y

Use wget to download the latest Python 3.9 release.

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

Extract the archive file using tar:

tar xvf Python-3.9.13.tgz

Switch to the directory created from the file extraction:

cd Python-3.9*/

Step 2: Install Python 3.9 on CentOS 8 / CentOS 7

Run the command below to configure Python installation.

./configure --enable-optimizations

Sample output of success:

....
checking for the Linux getrandom() syscall... yes
checking for the getrandom() function... yes
checking for library containing shm_open... -lrt
checking for sys/mman.h... (cached) yes
checking for shm_open... yes
checking for shm_unlink... yes
checking for pkg-config... /usr/bin/pkg-config
checking whether compiling and linking against OpenSSL works... yes
checking for X509_VERIFY_PARAM_set1_host in libssl... yes
checking for --with-ssl-default-suites... python
checking for --with-builtin-hashlib-hashes... md5,sha1,sha256,sha512,sha3,blake2
configure: creating ./config.status
config.status: creating Makefile.pre
config.status: creating Misc/python.pc
config.status: creating Misc/python-embed.pc
config.status: creating Misc/python-config.sh
config.status: creating Modules/ld_so_aix
config.status: creating pyconfig.h
creating Modules/Setup.local
creating Makefile

Build Python 3.9 on CentOS 8 / CentOS 7:

sudo make altinstall

Be patient as this takes quite some time depending on number of CPU cores in your system. If this was successful, you should get a message like below:

....
running install_scripts
copying build/scripts-3.9/pydoc3.9 -> /usr/local/bin
copying build/scripts-3.9/idle3.9 -> /usr/local/bin
copying build/scripts-3.9/2to3-3.9 -> /usr/local/bin
changing mode of /usr/local/bin/pydoc3.9 to 755
changing mode of /usr/local/bin/idle3.9 to 755
changing mode of /usr/local/bin/2to3-3.9 to 755
rm /usr/local/lib/python3.9/lib-dynload/_sysconfigdata__linux_x86_64-linux-gnu.py
rm -r /usr/local/lib/python3.9/lib-dynload/__pycache__
/usr/bin/install -c -m 644 ./Misc/python.man \
	/usr/local/share/man/man1/python3.9.10
if test "xupgrade" != "xno"  ; then \
	case upgrade in \
		upgrade) ensurepip="--altinstall --upgrade" ;; \
		install|*) ensurepip="--altinstall" ;; \
	esac; \
	 ./python -E -m ensurepip \
		$ensurepip --root=/ ; \
fi
Looking in links: /tmp/tmpxqejw3c3
Processing /tmp/tmpxqejw3c3/setuptools-58.1.0-py3-none-any.whl
Processing /tmp/tmpxqejw3c3/pip-22.0.4-py3-none-any.whll
Installing collected packages: setuptools, pip
  WARNING: The script easy_install-3.9 is installed in '/usr/local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script pip3.9 is installed in '/usr/local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-22.0.4 setuptools-58.1.0

Check Python 3.9 installation on CentOS 8 / CentOS 7

Run below command to confirm successful installation of Python 3.9 on CentOS 8 / CentOS 7:

$ python3.9 --version
Python 3.9.13

Pip3.9 must have been installed as well:

$ pip3.9 --version
pip 22.0.4 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

Upgrade pip

$ /usr/local/bin/python3.9 -m pip install --upgrade pip
Requirement already satisfied: pip in /usr/local/lib/python3.9/site-packages (22.0.4)
Collecting pip
  Downloading pip-22.2.2-py3-none-any.whl (2.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 73.2 MB/s eta 0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 22.0.4
    Uninstalling pip-22.0.4:
      Successfully uninstalled pip-22.0.4
Successfully installed pip-22.2.2

Example on installing awscli with pip3.9:

$ pip3.9 install awscli --user
Collecting awscli
  Downloading awscli-1.25.49-py3-none-any.whl (3.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 65.8 MB/s eta 0:00:00
Collecting PyYAML<5.5,>=3.10
  Downloading PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl (630 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 630.1/630.1 kB 21.8 MB/s eta 0:00:00
Collecting colorama<0.4.5,>=0.2.5
  Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)
Collecting docutils<0.17,>=0.10
  Downloading docutils-0.16-py2.py3-none-any.whl (548 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 548.2/548.2 kB 21.2 MB/s eta 0:00:00
Collecting s3transfer<0.7.0,>=0.6.0
  Downloading s3transfer-0.6.0-py3-none-any.whl (79 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 79.6/79.6 kB 11.7 MB/s eta 0:00:00
Collecting botocore==1.27.49
  Downloading botocore-1.27.49-py3-none-any.whl (9.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.0/9.0 MB 86.8 MB/s eta 0:00:00
Collecting rsa<4.8,>=3.1.2
  Downloading rsa-4.7.2-py3-none-any.whl (34 kB)
Collecting urllib3<1.27,>=1.25.4
  Downloading urllib3-1.26.11-py2.py3-none-any.whl (139 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 139.9/139.9 kB 28.9 MB/s eta 0:00:00
Collecting jmespath<2.0.0,>=0.7.1
  Downloading jmespath-1.0.1-py3-none-any.whl (20 kB)
Collecting python-dateutil<3.0.0,>=2.1
  Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 kB 51.3 MB/s eta 0:00:00
Collecting pyasn1>=0.1.3
  Downloading pyasn1-0.4.8-py2.py3-none-any.whl (77 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.1/77.1 kB 19.1 MB/s eta 0:00:00
Collecting six>=1.5
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: pyasn1, urllib3, six, rsa, PyYAML, jmespath, docutils, colorama, python-dateutil, botocore, s3transfer, awscli
Successfully installed PyYAML-5.4.1 awscli-1.25.49 botocore-1.27.49 colorama-0.4.4 docutils-0.16 jmespath-1.0.1 pyasn1-0.4.8 python-dateutil-2.8.2 rsa-4.7.2 s3transfer-0.6.0 six-1.16.0 urllib3-1.26.11

Here are more guides we have on Python in our website:

### CentOS 8 上离线安装 Python 3.9 #### 准备工作环境 为了在 CentOS 8 中成功离线安装 Python 3.9,需先在线机器上准备好必要的依赖库和工具。这一步骤确保所有必需文件被正确获取并打包到可移植介质中以便后续用于目标系统的离线部署。 ```bash sudo dnf groupinstall "Development Tools" sudo dnf install openssl-devel bzip2-devel libffi-devel wget tar gcc make zlib-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel ``` 上述命令会安装编译 Python 所需的各种开发库和支持软件[^1]。 #### 下载源码包 访问官方 Python 网站或其他可信镜像站点下载对应版本的 Python 源代码压缩包至本地计算机: ```bash cd /tmp/ wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz tar -xf Python-3.9.0.tgz cd Python-3.9.0 ``` 此过程将解压所下载的 Python 3.9 压缩包,并进入其目录准备下一步配置与构建操作。 #### 编译与安装 完成前期准备工作之后,在具备网络连接的工作站执行如下指令来编译并安装 Python 至指定路径(如 `/usr/local/python3`),随后创建软链接方便调用新版本解释器及其配套工具: ```bash ./configure --prefix=/usr/local/python3 --enable-shared LDFLAGS="-Wl,-rpath,/usr/local/python3/lib" make && sudo make altinstall ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3.9 /usr/bin/pip3 python3 -V pip3 -V ``` 通过以上步骤可以验证 Python 和 Pip 是否已正确设置完毕以及具体版本信息[^2]。 #### 处理常见错误 如果遇到 `No module named &#39;_ssl&#39;` 错误提示,则可能是由于缺少 OpenSSL 开发库所致;此时应确认已经按照前述指导完成了相应依赖项的预装工作。另外还需注意检查系统环境变量 PATH 设置是否恰当指向新的 Python 可执行程序位置[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值