这里写目录标题
- 1. 编译安装 Python
-
- 1.1. 专题: 同系统多版本 Python 问题
-
- 1.1.1. altinstall bininstall maninstall
- 1.1.2. 兼容性修正
-
- 1.1.2.1. Redhat/CentOS 系
- 1.1.2.2. Debian/Ubuntu 系
- 1.1.3. 快速虚拟化环境工具
- 1.2. Step 1: Install Python Dependencies
- 1.3. Step 2: Download latest Python 3.9 Archive
- 1.4. Step 3: Install Python 3.9 on CentOS 8 / CentOS 7
1. 编译安装 Python 在 CentOS 上因为自带的 Python 版本比较旧,所以要安装高版本的 Python 但同时要求不能影响原来的
python3
命令。先不急着动手,可以先看看关于多版本的专题。
1.1. 专题: 同系统多版本 Python 问题 【python|编译安装 Python】非常不建议直接覆盖当前系统的
python
和 python3
命令,Python 每个版本之间多少有点不兼容问题,处理起来非常麻烦,万一系统用到了,就是个大问题。Building Python:If you want it to install to, for example,make install
can overwrite or masquerade thepython3
binary.make altinstall
is therefore recommended instead ofmake install
since it only installsexec_prefix/bin/pythonversion
.
/usr/bin
instead of the default (/usr/local/bin
in ubuntu/debian), then instead of ./configure
, type ./configure --prefix=/usr
when told to use it in the guide.For in your
$HOME/bin
directory, use --prefix=$HOME
.If it doesn’t exist, add
$HOME/bin
to your $PATH like this:$ export PATH=$HOME/bin:$PATH
This may already be in your
.bashrc
in ubuntu, and others. If it is, when you next log in, $HOME/bin
will be added to your $PATH
automatically.1.1.1. altinstall bininstall maninstall
Let’s take a look at the generated Makefile!
First, the install target:
install:altinstall bininstall maninstall
It does everything
altinstall
does, along with bininstall
and maninstall
Here’s
bininstall
;
it just creates the python
and other symbolic links.# Install the interpreter by creating a symlink chain:
#$(PYTHON) -> python2 -> python$(VERSION))
# Also create equivalent chains for other installed files
bininstall:altbininstall
-if test -f $(DESTDIR)$(BINDIR)/$(PYTHON) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON);
\
then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON);
\
else true;
\
fi
(cd $(DESTDIR)$(BINDIR);
$(LN) -s python2$(EXE) $(PYTHON))
-rm -f $(DESTDIR)$(BINDIR)/python2$(EXE)
(cd $(DESTDIR)$(BINDIR);
$(LN) -s python$(VERSION)$(EXE) python2$(EXE))
... (More links created)
And here’s
maninstall
, it just creates “unversioned” links to the Python manual pages.# Install the unversioned manual pages
maninstall:altmaninstall
-rm -f $(DESTDIR)$(MANDIR)/man1/python2.1
(cd $(DESTDIR)$(MANDIR)/man1;
$(LN) -s python$(VERSION).1 python2.1)
-rm -f $(DESTDIR)$(MANDIR)/man1/python.1
(cd $(DESTDIR)$(MANDIR)/man1;
$(LN) -s python2.1 python.1)
TLDR:
altinstall
skips creating the python
link and the manual pages links, install
will hide the system binaries and manual pages.1.1.2. 兼容性修正
1.1.2.1. Redhat/CentOS 系 一般在
/usr/bin/
下放一个链接,链接到 /usr/local/bin/
下面:$ ln -s /usr/local/bin/pip/usr/bin/pip
$ ln -s /usr/local/bin/pip3/usr/bin/pip3
$ ln -s /usr/local/bin/pip3.9 /usr/local/bin/pip3
1.1.2.2. Debian/Ubuntu 系 1.1.3. 快速虚拟化环境工具
- virtualenv
- venv
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.
1.3. 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.10/Python-3.9.10.tgz
Extract the archive file using tar:
tar xvf Python-3.9.10.tgz
Switch to the directory created from the file extraction:
cd Python-3.9*/
1.4. Step 3: Install Python 3.9 on CentOS 8 / CentOS 7 Run the command below to configure Python installation.
./configure --enable-optimizations
Build Python 3.9 on CentOS 8 / CentOS 7:
sudo make altinstall # altinstall is important, DO NOT use `make install`.
Python 安装时Be patient as this takes quite some time depending on number of CPU cores in your system.make install
和make altinstall
的区别: altinstall skips creating the python link and the manual pages links.altinstall
跳过创建 Python 链接和手册页链接的操作。如果使用make install
,在系统中将会有两个不同版本的 Python 在/usr/bin
目录中,这将会导致很多问题。
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.10
Pip3.9 must have been installed as well:
$ pip3.9 --version
pip 21.2.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
$ pip3.9 --version
推荐阅读
- 中职网络空间安全|2021年福建省职业院校技能大赛(中职组)网络安全竞赛任务书
- DRF 中的模型序列化到底该怎么用()
- python|Sqoop的工作原理
- 开源资讯|4年后,Debian终夺回“debian.community“ 域名!
- ROS学习|ubuntu 18.04 下 D435i SDK安装 ros-wapper安装 绘制rosbag 运行vins-mono离线/在线
- Linux|ROS播包可视化
- Django|Python后端---使用Django+Mysql搭建一个简单的网站
- python爬虫|高清!手把手教你Python爬取LOL英雄皮肤套图
- Linux运维理论+实战笔记|centos7安装部署kvm,照做就行