程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Compile and install Python

編輯:Python

這裡寫目錄標題

  • 1. 編譯安裝 Python
    • 1.1. 專題: Multiple versions of the same system Python 問題
      • 1.1.1. altinstall bininstall maninstall
      • 1.1.2. Compatibility fixes
        • 1.1.2.1. Redhat/CentOS 系
        • 1.1.2.2. Debian/Ubuntu 系
      • 1.1.3. Rapid virtualization environment tool
    • 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 Because it comes with it Python 版本比較舊,So install the higher version Python But at the same time, the requirement cannot affect the original python3 命令.

先不急著動手,You can first take a look at the topic on multi-version.

1.1. 專題: Multiple versions of the same system Python 問題

It is highly not recommended to directly overwrite the current system pythonpython3 命令,Python There are some incompatibility issues between each version,處理起來非常麻煩,In case the system is used,就是個大問題.

Building Python: make install can overwrite or masquerade the python3 binary. make altinstall is therefore recommended instead of make install since it only installs exec_prefix/bin/pythonversion.

If you want it to install to, for example, /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. Compatibility fixes

1.1.2.1. Redhat/CentOS 系

一般在 /usr/bin/ Drop a link,鏈接到 /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. Rapid virtualization environment tool

  • virtualenv
  • venv

1.2. Step 1: Install Python Dependencies

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

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 安裝時 make installmake altinstall 的區別: altinstall skips creating the python link and the manual pages links. altinstall 跳過創建 Python Actions for links and man page links.如果使用 make install,There will be two different versions in the system Python 在 /usr/bin 目錄中,This will cause many problems.

Be patient as this takes quite some time depending on number of CPU cores in your system.

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

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved