Linux 环境从 Python3.6 升级到 Python3.12

a0a8176bfd2922c5367762e8ac384da1.gif

作者 | JiekeXu

来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT)

如需转载请联系授权 | (个人微信 ID:JiekeXu_DBA)

大家好,我是 JiekeXu,江湖人称“强哥”,荣获 Oracle ACE 称号,墨天轮 MVP,墨天轮年度“墨力之星”,拥有 Oracle 11g OCP/OCM 认证,MySQL 5.7/8.0 OCP 认证以及 PCA、PCTA、OBCA、OGCA、KCP 等众多国产数据库认证证书,今天和大家一起来看看 Linux 下 Python3.6 升级到 Python3.12,欢迎点击最上方蓝字“JiekeXu DBA之路”关注我的微信公众号,然后点击右上方三个点“设为星标”顶,更多干货文章才能第一时间推送,谢谢!

前  言

Python 由荷兰数学和计算机科学研究学会(CWI,见 https://www.cwi.nl/ )的 Guido van Rossum 于 1990 年代初设计,作为一门叫做 ABC 的语言的替代品。尽管 Python 包含了许多来自其他人的贡献,Guido 仍是其主要作者。

1995 年,Guido 在弗吉尼亚州的国家创新研究公司(CNRI,见 https://www.cnri.reston.va.us/ )继续他在 Python 上的工作,并在那里发布了该软件的多个版本。

2000 年五月,Guido 和 Python 核心开发团队转到 BeOpen.com 并组建了 BeOpen PythonLabs 团队。同年十月,PythonLabs 团队转到 Digital Creations (现为 Zope 公司;见 https://www.zope.org/)。2001 年,Python 软件基金会 (PSF,见 https://www.python.org/psf/) 成立,这是一个专为拥有 Python 相关知识产权而创建的非营利组织。Zope 公司现在是 Python 软件基金会的赞助成员。

所有的 Python 版本都是开源的(有关开源的定义参阅 https://opensource.org/  )。历史上,绝大多数 Python 版本是 GPL 兼容的;下表总结了各个版本情况。

f4b9661e1b2d05e925025d84a322ddc0.png

备注 GPL 兼容并不意味着 Python 在 GPL 下发布。与 GPL 不同,所有 Python 许可证都允许您分发修改后的版本,而无需开源所做的更改。GPL 兼容的许可证使得 Python 可以与其它在 GPL 下发布的软件结合使用;但其它的许可证则不行。

2024 年 4 月 9 日 Python 3.12.3 发布,2023 年 10 月 2 日 Python 3.12.0 发布, 2018 年 12 月 24 日 Python 3.6.8 发布,2016 年 12 月 23 日 Python 3.6.0 发布,等等。目前,Python 3.12 是 Python 编程语言的最新稳定发布版,包含一系列对语言和标准库的改变。库的改变主要集中在清理已弃用的 API、可用性和正确性等方面。值得注意的是,distutils 包已从标准库中移除。os 和 pathlib 中的文件系统支持增加了许多改进,而且部分模块的性能也获得了提升。

语言的改变主要集中在可用性方面,如 f- 字符串的许多限制已被移除,而 ‘Did you mean …’ 提示消息继续得到改进。新的类型形参语法和 type 语句提升了泛型类型和类型别名配合静态类型检查器使用时的效率。

正  文

下载软件包

通过官网下载最新的 Python 3.12.3 版本,如下使用的是 OracleLinux 8.7 版本,自带 Python 3.6.8。

https://www.python.org/downloads/
    
https://www.python.org/downloads/release/python-3123/
    
Python-3.12.3.tar.xz

a44e8e259a587a9abd0c4f1659560be5.png

查看本虚拟机环境信息及 Python 版本。
[root@jiekexu ~]# python3
    Python 3.6.8 (default, Oct  5 2022, 16:22:51) 
    [GCC 8.5.0 20210514 (Red Hat 8.5.0-15.0.1)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    >>> quit()
    [root@jiekexu ~]# cat /etc/redhat-release 
    Red Hat Enterprise Linux release 8.7 (Ootpa)
    [root@jiekexu ~]# lscpu
    Architecture:        x86_64
    CPU op-mode(s):      32-bit, 64-bit
    Byte Order:          Little Endian
    CPU(s):              8
    On-line CPU(s) list: 0-7
    Thread(s) per core:  1
    Core(s) per socket:  1
    Socket(s):           8
    NUMA node(s):        1
    Vendor ID:           GenuineIntel
    BIOS Vendor ID:      GenuineIntel
    CPU family:          6
    Model:               85
    Model name:          Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz
    BIOS Model name:     Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz
    Stepping:            4
    CPU MHz:             2294.609
    BogoMIPS:            4589.21
    Hypervisor vendor:   VMware
    Virtualization type: full
    L1d cache:           32K
    L1i cache:           32K
    L2 cache:            1024K
    L3 cache:            16896K
    NUMA node0 CPU(s):   0-7

最近新发布的 RHEL 9.4 包含了 Python 3.12, RHEL 9.4 还带了 PG16 和 mariadb10.11。

3b93be33b0080d12387f0b67f168b268.png

安装编译所需 rpm 软件包

[root@jiekexu ~]# mount /root/OracleLinux-R8-U7-x86_64-dvd.iso /iso
    mount: /iso: WARNING: device write-protected, mounted read-only.
    
    yum install perl-Env libffi-devel openssl openssl-devel tk-devel xz-devel zlib-devel bzip2-devel readline-devel libuuid-devel ncurses-devel
    [root@jiekexu ~]#  yum install perl-Env zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel -y
    Oracle Linux 8                                                                                                                                                42 kB/s | 2.3 kB     00:00    
    Oracle Linux 8 AppStream                                                                                                                                     302 kB/s | 2.8 kB     00:00    
    Package ncurses-devel-6.1-9.20180224.el8.x86_64 is already installed.
    Package readline-devel-7.0-10.el8.x86_64 is already installed.
    Package make-1:4.2.1-11.el8.x86_64 is already installed.
    Dependencies resolved.
    =============================================================================================================================================================================================
     Package                                            Architecture                         Version                                           Repository                                   Size
    =============================================================================================================================================================================================
    Installing:
     bzip2-devel                                        x86_64                               1.0.6-26.el8                                      ol8_app                                     224 k
     gcc                                                x86_64                               8.5.0-15.0.1.el8                                  ol8_AppStream                                23 M
     libffi-devel                                       x86_64                               3.1-23.el8                                        ol8_app                                      29 k
     openssl-devel                                      x86_64                               1:1.1.1k-7.el8_6                                  ol8_app                                     2.3 M
     sqlite-devel                                       x86_64                               3.26.0-16.el8_6                                   ol8_app                                     165 k
     tk-devel                                           x86_64                               1:8.6.8-1.el8                                     ol8_AppStream                               498 k
     zlib-devel                                         x86_64                               1.2.11-20.el8                                     ol8_app                                      58 k
    Installing dependencies:
    
    --##省略中间结果
     Verifying        : xorg-x11-proto-devel-2020.1-3.el8.noarch                                                                                                                          33/33 
    
    Installed:
      bzip2-devel-1.0.6-26.el8.x86_64   cpp-8.5.0-15.0.1.el8.x86_64              expat-devel-2.2.5-10.0.1.el8.x86_64     fontconfig-devel-2.13.1-4.el8.x86_64 freetype-devel-2.9.1-9.el8.x86_64 
      gcc-8.5.0-15.0.1.el8.x86_64       isl-0.16.1-6.el8.x86_64                  keyutils-libs-devel-1.5.10-9.el8.x86_64 krb5-devel-1.18.2-21.0.1.el8.x86_64  libX11-devel-1.6.8-5.el8.x86_64   
      libXau-devel-1.0.9-3.el8.x86_64   libXft-devel-2.3.3-1.el8.x86_64          libXrender-devel-0.9.10-7.el8.x86_64    libcom_err-devel-1.45.6-5.el8.x86_64 libffi-devel-3.1-23.el8.x86_64    
      libkadm5-1.18.2-21.0.1.el8.x86_64 libpng-devel-2:1.6.34-5.el8.x86_64       libselinux-devel-2.9-6.el8.x86_64       libsepol-devel-2.9-3.el8.x86_64      libuuid-devel-2.32.1-38.el8.x86_64
      libverto-devel-0.3.2-2.el8.x86_64 libxcb-devel-1.13.1-1.el8.x86_64         openssl-devel-1:1.1.1k-7.el8_6.x86_64   pcre2-devel-10.32-3.el8_6.x86_64     pcre2-utf16-10.32-3.el8_6.x86_64  
      pcre2-utf32-10.32-3.el8_6.x86_64  sqlite-devel-3.26.0-16.el8_6.x86_64      tcl-1:8.6.8-2.el8.x86_64                tcl-devel-1:8.6.8-2.el8.x86_64       tk-1:8.6.8-1.el8.x86_64           
      tk-devel-1:8.6.8-1.el8.x86_64     xorg-x11-proto-devel-2020.1-3.el8.noarch zlib-devel-1.2.11-20.el8.x86_64        
    
    Complete!

查看原版本 3.6.8

[root@jiekexu ~]# python3
    Python 3.6.8 (default, Oct  5 2022, 16:22:51) 
    [GCC 8.5.0 20210514 (Red Hat 8.5.0-15.0.1)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    >>> quit()

上传安装包并解压

[root@jiekexu ~]# tar -xvf Python-3.12.3.tar.xz

编译安装三部曲

[root@jiekexu ~]# cd Python-3.12.3
    [root@jiekexu Python-3.12.3]# ./configure
    
    checking for stdlib extension module xxlimited_35... yes
    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/Setup.bootstrap
    config.status: creating Modules/Setup.stdlib
    config.status: creating Modules/ld_so_aix
    config.status: creating pyconfig.h
    configure: creating Modules/Setup.local
    configure: creating Makefile
    configure:
    
    If you want a release build with all stable optimizations active (PGO, etc),
    please run ./configure --enable-optimizations
    
    [root@jiekexu Python-3.12.3]#

编译

[root@jiekexu Python-3.12.3]# make && make install 
    /usr/bin/install -c -m 755 Modules/xxlimited_35.cpython-312-x86_64-linux-gnu.so /usr/local/lib/python3.12/lib-dynload/xxlimited_35.cpython-312-x86_64-linux-gnu.so
    /usr/bin/install -c -m 644 ./Misc/python.man \
            /usr/local/share/man/man1/python3.12.1
    if test ! -d /usr/local/lib/pkgconfig; then \
            echo "Creating directory /usr/local/lib/pkgconfig"; \
            /usr/bin/install -c -d -m 755 /usr/local/lib/pkgconfig; \
    fi
    if test -f /usr/local/bin/python3 -o -h /usr/local/bin/python3; \
    then rm -f /usr/local/bin/python3; \
    else true; \
    fi
    (cd /usr/local/bin; ln -s python3.12 python3)
    if test "3.12" != "3.12"; then \
            rm -f /usr/local/bin/python3.12-config; \
            (cd /usr/local/bin; ln -s python3.12-config python3.12-config); \
            rm -f /usr/local/lib/pkgconfig/python-3.12.pc; \
            (cd /usr/local/lib/pkgconfig; ln -s python-3.12.pc python-3.12.pc); \
            rm -f /usr/local/lib/pkgconfig/python-3.12-embed.pc; \
            (cd /usr/local/lib/pkgconfig; ln -s python-3.12-embed.pc python-3.12-embed.pc); \
    fi
    rm -f /usr/local/bin/python3-config
    (cd /usr/local/bin; ln -s python3.12-config python3-config)
    rm -f /usr/local/lib/pkgconfig/python3.pc
    (cd /usr/local/lib/pkgconfig; ln -s python-3.12.pc python3.pc)
    rm -f /usr/local/lib/pkgconfig/python3-embed.pc
    (cd /usr/local/lib/pkgconfig; ln -s python-3.12-embed.pc python3-embed.pc)
    rm -f /usr/local/bin/idle3
    (cd /usr/local/bin; ln -s idle3.12 idle3)
    rm -f /usr/local/bin/pydoc3
    (cd /usr/local/bin; ln -s pydoc3.12 pydoc3)
    rm -f /usr/local/bin/2to3
    (cd /usr/local/bin; ln -s 2to3-3.12 2to3)
    if test "x" != "x" ; then \
            rm -f /usr/local/bin/python3-32; \
            (cd /usr/local/bin; ln -s python3.12-32 python3-32) \
    fi
    if test "x" != "x" ; then \
            rm -f /usr/local/bin/python3-intel64; \
            (cd /usr/local/bin; ln -s python3.12-intel64 python3-intel64) \
    fi
    rm -f /usr/local/share/man/man1/python3.1
    (cd /usr/local/share/man/man1; ln -s python3.12.1 python3.1)
    if test "xupgrade" != "xno"  ; then \
            case upgrade in \
                    upgrade) ensurepip="--upgrade" ;; \
                    install|*) ensurepip="" ;; \
            esac; \
             ./python -E -m ensurepip \
                    $ensurepip --root=/ ; \
    fi
    Looking in links: /tmp/tmpp4rgxpde
    Processing /tmp/tmpp4rgxpde/pip-24.0-py3-none-any.whl
    Installing collected packages: pip
    Successfully installed pip-24.0
    WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
    [root@jiekexu Python-3.12.3]#

查看版本

[root@jiekexu Python-3.12.3]# ./python
    Python 3.12.3 (main, May 23 2024, 15:47:07) [GCC 8.5.0 20210514 (Red Hat 8.5.0-15.0.1)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> quit()
    
    [root@jiekexu Python-3.12.3]# cd /usr/local/bin
    [root@jiekexu bin]# pip3 --version
    pip 24.0 from /usr/local/lib/python3.12/site-packages/pip (python 3.12)
    [root@jiekexu bin]# python3 --version
    Python 3.6.8
    [root@jiekexu bin]# ll
    total 37924
    lrwxrwxrwx  1 root root        9 May 23 15:48 2to3 -> 2to3-3.12
    -rwxr-xr-x  1 root root      102 May 23 15:48 2to3-3.12
    -rwxr-xr-x. 1 root root     6468 May  7 15:18 coraenv
    -rwxr-xr-x. 1 root root     2445 May  7 15:18 dbhome
    lrwxrwxrwx  1 root root        8 May 23 15:48 idle3 -> idle3.12
    -rwxr-xr-x  1 root root      100 May 23 15:48 idle3.12
    -rwxr-xr-x. 1 root root     6887 May  7 15:18 oraenv
    -rwxr-xr-x  1 root root      230 May 23 15:48 pip3
    -rwxr-xr-x  1 root root      230 May 23 15:48 pip3.12
    lrwxrwxrwx  1 root root        9 May 23 15:48 pydoc3 -> pydoc3.12
    -rwxr-xr-x  1 root root       85 May 23 15:48 pydoc3.12
    lrwxrwxrwx  1 root root       10 May 23 15:48 python3 -> python3.12
    -rwxr-xr-x  1 root root 38788168 May 23 15:48 python3.12
    -rwxr-xr-x  1 root root     3060 May 23 15:48 python3.12-config
    lrwxrwxrwx  1 root root       17 May 23 15:48 python3-config -> python3.12-config
自定义 python 路径

在编译完之后,运行 ./python 即是我们最新安装的 python 3.12.3,然后 pip3  也是最新版本,但在其他目录执行 python3 --version 还是 3.6.8。

## 软链接 python 3.12.3 到 /usr/bin/python
[root@jiekexu bin]# cd /usr/bin
[root@jiekexu bin]# ll python*
lrwxrwxrwx. 1 root root 25 Apr 18  2023 python3 -> /etc/alternatives/python3
lrwxrwxrwx. 1 root root 31 Oct 11  2021 python3.6 -> /usr/libexec/platform-python3.6
lrwxrwxrwx. 1 root root 32 Oct 11  2021 python3.6m -> /usr/libexec/platform-python3.6m


[root@jiekexu bin]# ln -s /root/Python-3.12.3/python python
[root@jiekexu bin]# ll python*
lrwxrwxrwx  1 root root 26 May 23 16:06 python -> /root/Python-3.12.3/python
lrwxrwxrwx. 1 root root 25 Apr 18  2023 python3 -> /etc/alternatives/python3
lrwxrwxrwx. 1 root root 31 Oct 11  2021 python3.6 -> /usr/libexec/platform-python3.6
lrwxrwxrwx. 1 root root 32 Oct 11  2021 python3.6m -> /usr/libexec/platform-python3.6m
[root@jiekexu bin]# python
Python 3.12.3 (main, May 23 2024, 15:47:07) [GCC 8.5.0 20210514 (Red Hat 8.5.0-15.0.1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()

我们退出重新登录一下,发现不管是 python3 还是 python 都已经指向了 python3.12.3 版本。

[root@jiekexu ~]# exit
[root@jiekexu ~]# python3
Python 3.12.3 (main, May 23 2024, 15:47:07) [GCC 8.5.0 20210514 (Red Hat 8.5.0-15.0.1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> 
>>> quit()
[root@jiekexu ~]# 
[root@jiekexu ~]# python
Python 3.12.3 (main, May 23 2024, 15:47:07) [GCC 8.5.0 20210514 (Red Hat 8.5.0-15.0.1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()

彩蛋

折腾了好久,最后都装好了,才知道这个月发布的 Oracle 23ai 版本直接集成了 Python3.12.1,已经在存在于 Oracle_HOME 目录下,我们可以直接进入到 bin 目录下使用,也可以配置环境变量,在整个 Oracle 用户下使用。

[oracle@jiekexu ~]$ cd $ORACLE_HOME/python/bin
[oracle@jiekexu bin]$ ll
total 1204
lrwxrwxrwx 1 oracle oinstall       9 Apr 25 03:43 2to3 -> 2to3-3.12
-rwxr-x--- 1 oracle oinstall      97 Nov  7  2023 2to3-3.12
-rwxr-x--- 1 oracle oinstall    6884 Nov  2  2023 c_rehash
-rwxr-xr-x 1 oracle oinstall     254 May 27 16:29 f2py
-rwxr-xr-x 1 oracle oinstall     255 May 27 17:43 fonttools
lrwxrwxrwx 1 oracle oinstall       8 Apr 25 03:43 idle3 -> idle3.12
-rwxr-x--- 1 oracle oinstall      95 Nov  7  2023 idle3.12
-rwxr-x--- 1 oracle oinstall 1158112 Nov  2  2023 openssl
lrwxrwxrwx 1 oracle oinstall       4 Apr 25 03:43 pip -> pip3
lrwxrwxrwx 1 oracle oinstall       7 Apr 25 03:43 pip3 -> pip3.12
-rwxr-x--- 1 oracle oinstall     225 Nov  7  2023 pip3.12
lrwxrwxrwx 1 oracle oinstall       9 Apr 25 03:43 pydoc3 -> pydoc3.12
-rwxr-x--- 1 oracle oinstall      80 Nov  7  2023 pydoc3.12
-rwxr-xr-x 1 oracle oinstall     252 May 27 17:43 pyftmerge
-rwxr-xr-x 1 oracle oinstall     253 May 27 17:43 pyftsubset
lrwxrwxrwx 1 oracle oinstall       7 Apr 25 03:43 python -> python3
lrwxrwxrwx 1 oracle oinstall      10 Apr 25 03:43 python3 -> python3.12
-rwxr-x--- 1 oracle oinstall   22192 Dec 31 18:11 python3.12
-rwxr-x--- 1 oracle oinstall    3069 Feb  6 20:28 python3.12-config
lrwxrwxrwx 1 oracle oinstall      17 Apr 25 03:43 python3-config -> python3.12-config
-rwxr-xr-x 1 oracle oinstall     250 May 27 17:43 ttx
[oracle@jiekexu bin]$ ./python
Python 3.12.1 (main, Feb  6 2024, 12:09:55) [GCC 8.5.0 20210514 (Red Hat 8.5.0-18.0.6)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
[oracle@jiekexu ~]$ echo "
###### for python3.12.1 ####
export PYTHONHOME=/opt/oracle/product/23ai/dbhomeFree/python
export PATH=$PYTHONHOME/bin:$PATH
export LD_LIBRARY_PATH=$PYTHONHOME/lib:$LD_LIBRARY_PATH
" >> ~/.bash_profile


[oracle@jiekexu bin]$ python --version
Python 3.12.1

c478126a4a6e5465ed0c9e8a4ae25acb.png

附 Python 版本发布情况

Python 3.12.3,文档于 2024 年 4 月 9 日发布。
Python 3.12.2,文档于 2024 年 2 月 6 日发布。
Python 3.12.1,文档于 2023 年 12 月 8 日发布。
Python 3.12.0,文档于 2023 年 10 月 2 日发布。
Python 3.11.9,文档于 2024 年 4 月 2 日发布。
Python 3.11.8,文档于 2024 年 2 月 6 日发布。
Python 3.11.7,文档于 2023 年 12 月 4 日发布。
Python 3.11.6,文档于 2023 年 10 月 2 日发布。
Python 3.11.5,文档于 2023 年 8 月 24 日发布。
Python 3.11.4,文档于 2023 年 6 月 6 日发布。
Python 3.11.3,文档于 2023 年 4 月 5 日发布。
Python 3.11.2,文档于 2023 年 2 月 8 日发布。
Python 3.11.1,文档于 2022 年 12 月 6 日发布。
Python 3.11.0,文档于 2022 年 10 月 24 日发布。
Python 3.10.14,文档于 2024 年 3 月 19 日发布。
Python 3.10.13,文档于 2023 年 8 月 24 日发布。
Python 3.10.12,文档于 2023 年 6 月 6 日发布。
Python 3.10.11,文档于 2023 年 4 月 5 日发布。
Python 3.10.10,文档于 2023 年 2 月 8 日发布。
Python 3.10.9,文档于 2022 年 12 月 6 日发布。
Python 3.10.8,文档于 2022 年 10 月 8 日发布。
Python 3.10.7,文档于 2022 年 9 月 6 日发布。
Python 3.10.6,文档于 2022 年 8 月 8 日发布。
Python 3.10.5,文档于 2022 年 6 月 6 日发布。
Python 3.10.4,文档于 2022 年 3 月 24 日发布。
Python 3.10.3,文档于 2022 年 3 月 16 日发布。
Python 3.10.2,文档于 2022 年 1 月 14 日发布。
Python 3.10.1,文档于 2021 年 12 月 6 日发布。
Python 3.10.0,文档于 2021 年 10 月 4 日发布。
Python 3.9.19,文档于 2024 年 3 月 19 日发布。
Python 3.9.18,文档于 2023 年 8 月 24 日发布。
Python 3.9.17,文档于 2023 年 6 月 6 日发布。
Python 3.9.16,文档于 2022 年 12 月 6 日发布。
Python 3.9.15,文档于 2022 年 10 月 11 日发布。
Python 3.9.14,文档于 2022 年 9 月 6 日发布。
Python 3.9.13,文档于 2022 年 5 月 17 日发布。
Python 3.9.12,文档于 2022 年 3 月 24 日发布。
Python 3.9.11,文档于 2022 年 3 月 16 日发布。
Python 3.9.10,文档于 2022 年 1 月 14 日发布。
Python 3.9.9,文档于 2021 年 11 月 15 日发布。
Python 3.9.8,文档于 2021 年 11 月 5 日发布。
Python 3.9.7,文档于 2021 年 8 月 30 日发布。
Python 3.9.6,文档于 2021 年 6 月 28 日发布。
Python 3.9.5,文档于 2021 年 5 月 3 日发布。
Python 3.9.4,文档于 2021 年 4 月 4 日发布。
Python 3.9.3,文档于 2021 年 4 月 2 日发布。
Python 3.9.2,文档于 2021 年 2 月 19 日发布。
Python 3.9.1,文档于 2020 年 12 月 8 日发布。
Python 3.9.0,文档于 2020 年 10 月 5 日发布。
Python 3.8.19,文档于 2024 年 3 月 19 日发布。
Python 3.8.18,文档于 2023 年 8 月 24 日发布。
Python 3.8.17,文档于 2023 年 6 月 6 日发布。
Python 3.8.16,文档于 2022 年 12 月 6 日发布。
Python 3.8.15,文档于 2022 年 10 月 11 日发布。
Python 3.8.14,文档于 2022 年 9 月 6 日发布。
Python 3.8.13,文档于 2022 年 3 月 16 日发布。
Python 3.8.12,文档于 2021 年 8 月 30 日发布。
Python 3.8.11,文档于 2021 年 6 月 28 日发布。
Python 3.8.10,文档于 2021 年 5 月 3 日发布。
Python 3.8.9,文档于 2021 年 4 月 2 日发布。
Python 3.8.8,文档于 2021 年 2 月 19 日发布。
Python 3.8.7,文档于 2020 年 12 月 21 日发布。
Python 3.8.6,文档于 2020 年 9 月 23 日发布。
Python 3.8.5,文档于 2020 年 7 月 20 日发布。
Python 3.8.4,文档于 2020 年 7 月 13 日发布。
Python 3.8.3,文档于 2020 年 5 月 13 日发布。
Python 3.8.2,文档于 2020 年 2 月 24 日发布。
Python 3.8.1,文档于 2019 年 12 月 18 日发布。
Python 3.8.0,文档于 2019 年 10 月 14 日发布。
Python 3.7.17,文档于 2023 年 6 月 6 日发布。
Python 3.7.16,文档于 2022 年 12 月 6 日发布。
Python 3.7.15,文档于 2022 年 10 月 11 日发布。
Python 3.7.14,文档于 2022 年 9 月 6 日发布。
Python 3.7.13,文档于 2022 年 3 月 16 日发布。
Python 3.7.12,文档于 2021 年 9 月 4 日发布。
Python 3.7.11,文档于 2021 年 6 月 28 日发布。
Python 3.7.10,文档于 2021 年 2 月 15 日发布。
Python 3.7.9,文档于 2020 年 8 月 17 日发布。
Python 3.7.8,文档于 2020 年 6 月 27 日发布。
Python 3.7.7,文档于 2020 年 3 月 10 日发布。
Python 3.7.6,文档于 2019 年 12 月 18 日发布。
Python 3.7.5,文档于 2019 年 10 月 15 日发布。
Python 3.7.4,文档于 2019 年 7 月 8 日发布。
Python 3.7.3,文档于 2019 年 3 月 25 日发布。
Python 3.7.2,文档于 2018 年 12 月 24 日发布。
Python 3.7.1,文档于 2018 年 10 月 20 日发布。
Python 3.7.0,文档于 2018 年 6 月 27 日发布。
Python 3.6.15,文档于 2021 年 9 月 4 日发布。
Python 3.6.14,文档于 2021 年 6 月 28 日发布。
Python 3.6.13,文档于 2021 年 2 月 15 日发布。
Python 3.6.12,文档于 2020 年 8 月 17 日发布。
Python 3.6.11,文档于 2020 年 6 月 27 日发布。
Python 3.6.10,文档于 2019 年 12 月 18 日发布。
Python 3.6.9,文档于 2019 年 7 月 2 日发布。
Python 3.6.8,文档于 2018 年 12 月 24 日发布。
Python 3.6.7,文档于 2018 年 10 月 20 日发布。
Python 3.6.6,文档于 2018 年 6 月 27 日发布。
Python 3.6.5,文档于 2018 年 3 月 28 日发布。
Python 3.6.4,文档于 2017 年 12 月 19 日发布。
Python 3.6.3,文档于 2017 年 10 月 3 日发布。
Python 3.6.2,文档于 2017 年 7 月 17 日发布。
Python 3.6.1,文档于 2017 年 3 月 21 日发布。
Python 3.6.0,文档于 2016 年 12 月 23 日发布。
Python 3.5.10,文档于 2020 年 9 月 5 日发布。
Python 3.5.8,文档于 2019 年 11 月 1 日发布。
Python 3.5.7,文档于 2019 年 3 月 18 日发布。
Python 3.5.6,文档于 2018 年 8 月 8 日发布。
Python 3.5.5,文档于 2018 年 2 月 4 日发布。
Python 3.5.4,文档于 2017 年 7 月 25 日发布。
Python 3.5.3,文档于 2017 年 1 月 17 日发布。
Python 3.5.2,文档于 2016 年 6 月 27 日发布。
Python 3.5.1,文档于 2015 年 12 月 7 日发布。
Python 3.5.0,文档于 2015 年 9 月 13 日发布。
Python 3.4.10,文档于 2019 年 3 月 18 日发布。
Python 3.4.9,文档于 2018 年 8 月 8 日发布。
Python 3.4.8,文档于 2018 年 2 月 4 日发布。
Python 3.4.7,文档于 2017 年 7 月 25 日发布。
Python 3.4.6,文档于 2017 年 1 月 17 日发布。
Python 3.4.5,文档于 2016 年 6 月 26 日发布。
Python 3.4.4,文档于 2015 年 12 月 6 日发布。
Python 3.4.3,文档于 2015 年 2 月 25 日发布。
Python 3.4.2,文档于 2014 年 10 月 4 日发布。
Python 3.4.1,文档于 2014 年 5 月 18 日发布。
Python 3.4.0,文档于 2014 年 3 月 16 日发布。
Python 3.3.7,文档于 2017 年 9 月 19 日发布。
Python 3.3.6,文档于 2014 年 10 月 12 日发布。
Python 3.3.5,文档于 2014 年 3 月 9 日发布。
Python 3.3.4,文档于 2014 年 2 月 9 日发布。
Python 3.3.3,文档于 2013 年 11 月 17 日发布。
Python 3.3.2,文档于 2013 年 5 月 15 日发布。
Python 3.3.1,文档于 2013 年 4 月 7 日发布。
Python 3.3.0,文档发布于 2012 年 9 月 29 日。
Python 3.2.6,文档于 2014 年 10 月 11 日发布。
Python 3.2.5,文档于 2013 年 5 月 15 日发布。
Python 3.2.4,文档于 2013 年 4 月 7 日发布。
Python 3.2.3,文档于 2012 年 4 月 10 日发布。
Python 3.2.2,文档于 2011 年 9 月 4 日发布。
Python 3.2.1,文档于 2011 年 7 月 10 日发布。
Python 3.2,文档发布于 2011 年 2 月 20 日。
Python 3.1.5,文档于 2012 年 4 月 9 日发布。
Python 3.1.4,文档发布于 2011 年 6 月 11 日。
Python 3.1.3,文档于 2010 年 11 月 27 日发布。
Python 3.1.2,文档发布于 2010 年 3 月 21 日。
Python 3.1.1,文档发布于 2009 年 8 月 17 日。
Python 3.1,文档发布于 2009 年 6 月 27 日。
Python 3.0.1,文档于 2009 年 2 月 13 日发布。
Python 3.0,文档发布于 2008 年 12 月 3 日。
Python 2.7.18,文档于 2020 年 4 月 20 日发布
Python 2.7.17,文档于 2019 年 10 月 19 日发布
Python 2.7.16,文档于 2019 年 3 月 2 日发布
Python 2.7.15,文档于 2018 年 4 月 30 日发布
Python 2.7.14,文档于 2017 年 9 月 16 日发布
Python 2.7.13,文档于 2016 年 12 月 17 日发布
Python 2.7.12,文档于 2016 年 6 月 26 日发布。
Python 2.7.11,文档于 2015 年 12 月 5 日发布。
Python 2.7.10,文档于 2015 年 5 月 23 日发布。
Python 2.7.9,文档于 2014 年 12 月 10 日发布。
Python 2.7.8,文档于 2014 年 7 月 1 日发布。
Python 2.7.7,文档发布于 2014 年 5 月 31 日。
Python 2.7.6,文档于 2013 年 11 月 10 日发布。
Python 2.7.5,文档于 2013 年 5 月 15 日发布。
Python 2.7.4,文档于 2013 年 4 月 6 日发布。
Python 2.7.3,文档于 2012 年 4 月 9 日发布。
Python 2.7.2,文档于 2011 年 6 月 11 日发布。
Python 2.7.1,文档发布于 2010 年 11 月 27 日。
Python 2.7,文档于 2010 年 7 月 4 日发布。
Python 2.6.9,文档于 2013 年 10 月 29 日发布。
Python 2.6.8,文档发布于 2012 年 4 月 10 日。
Python 2.6.7,文档于 2011 年 6 月 3 日发布。
Python 2.6.6,文档发布于 2010 年 8 月 24 日。
Python 2.6.5,文档发布于 2010 年 3 月 19 日。
Python 2.6.4,文档发布于 2009 年 10 月 25 日。
Python 2.6.3,文档于 2009 年 10 月 2 日发布。
Python 2.6.2,文档发布于 2009 年 4 月 14 日。
Python 2.6.1,文档于 2008 年 12 月 4 日发布。
Python 2.6,文档于 2008 年 10 月 1 日发布。
Python 2.5.4,文档发布于 2008 年 12 月 23 日。
Python 2.5.3,文档发布于 2008 年 12 月 19 日。
Python 2.5.2,文档发布于 2008 年 2 月 21 日。
Python 2.5.1,文档发布于 2007 年 4 月 18 日。
Python 2.5,文档发布于 2006 年 9 月 19 日。
Python 2.4.4,文档发布于 2006 年 10 月 18 日。
Python 2.4.3,2006 年 3 月 29 日发布的文档。
Python 2.4.2,文档发布于 2005 年 9 月 28 日。
Python 2.4.1,文档发布于 2005 年 3 月 30 日。
Python 2.4,文档发布于 2004 年 11 月 30 日。
Python 2.3.5,文档于 2005 年 2 月 8 日发布。
Python 2.3.4,文档发布于 2004 年 5 月 27 日。
Python 2.3.3,文档发布于 2003 年 12 月 19 日。
Python 2.3.2,文档发布于 2003年10月3日。
Python 2.3.1,文档发布于 2003年9月23日。
Python 2.3,文档发布于 2003年7月29日。
Python 2.2.3,文档发布于 2003年5月30日。
Python 2.2.2,文档发布于 2002年10月14日。
Python 2.2.1,文档发布于 2002年4月10日。
Python 2.2p1,文档发布于 2002年3月29日。
Python 2.2,文档发布于 2001年12月21日。
Python 2.1.3,文档发布于 2002年4月8日。
Python 2.1.2,文档发布于 2002年1月16日。
Python 2.1.1,文档发布于 2001年7月20日。
Python 2.1,文档发布于 2001年4月15日。
Python 2.0.1,文档发布于 2001年6月22日。
Python 2.0,文档发布于 2000年10月16日。
Python 1.6,文档发布于 2000年9月5日。
Python 1.5.2p2,文档发布于 2000年3月22日。
Python 1.5.2p1,文档发布于 1999年7月6日。
Python 1.5.2,文档发布于 1999年4月30日。
Python 1.5.1p1,文档发布于 1998年8月6日。
Python 1.5.1,文档发布于 1998年4月14日。
Python 1.5,文档发布于 1998年2月17日。
Python 1.4,文档发布于 1996年10月25日。

全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

❤️ 欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!

1682eb80c17d16155d531b2ddfccdb0a.gif

分享几个数据库备份脚本

一文搞懂 Oracle 统计信息
 
 

我的 Oracle ACE 心路历程

MOP 系列|MOP 三种主流数据库索引简介

Oracle 主流版本不同架构下的静默安装指南
 
 

关机重启导致 ASM 磁盘丢失数据库无法启动

Oracle SQL 性能分析(SPA)原理与实战演练
 
 

Oracle 11g 升级到 19c 需要关注的几个问题

Windows 10 环境下 MySQL 8.0.33 安装指南

SQL 大全(四)|数据库迁移升级时常用 SQL 语句

OGG|使用 OGG19c 迁移 Oracle11g 到 19C(第二版)

Oracle 大数据量导出工具——sqluldr2 的安装与使用

从国产数据库调研报告中你都能了解哪些信息及我的总结建议

使用数据泵利用 rowid 分片导出导入 lob 大表及最佳实践

在归档模式下直接 rm dbf 数据文件并重启数据库还有救吗?

欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
————————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————————
6bd709b87bc09331563fe704a9ad8596.png

  • 24
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将Linux上的Python 3.6升级到3.9,可以按照以下步骤操作: 1. 确认当前系统中是否已经安装了Python 3.9。可以在终端中输入以下命令进行检查: ``` python3.9 --version ``` 如果已经安装,则会显示Python 3.9的版本号;如果没有安装,则需要先安装Python 3.9。 2. 下载Python 3.9的安装包。可以从官网下载对应系统的安装包,也可以使用包管理器进行安装。 3. 安装Python 3.9。可以使用以下命令进行安装: ``` sudo apt-get install python3.9 ``` 如果已经安装了Python 3.9,则可以跳过此步骤。 4. 更新系统中的Python链接。可以使用以下命令进行更新: ``` sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2 sudo update-alternatives --config python3 ``` 在最后一条命令中,会提示选择要使用的Python版本,选择Python 3.9即可。 5. 确认Python版本是否已经升级。可以在终端中输入以下命令进行检查: ``` python3 --version ``` 如果显示的版本号为Python 3.9,则说明升级成功。 ### 回答2: Linux系统是一种开放源代码的操作系统,而Python则是一种基于解释器的高级编程语言,它们都是在不断地更新和发展中。如果要将Linux系统上的Python3.6版本升级为3.9版本,需要以下几步操作: 1. 检查Python版本 在终端输入以下命令,可以查看当前Python版本: ``` python3 -V ``` 如果显示结果为Python 3.6.x,则说明当前Python版本为3.6。 2. 安装Python3.9 访问Python官网(https://www.python.org/downloads/)下载Python3.9安装包,选择对应的Linux版本并下载。 下载完成后,在终端中进入下载路径。使用以下命令解压文件,并切换到解压后的目录中: ``` tar xzf Python-3.9.5.tgz cd Python-3.9.5 ``` 接下来,执行以下命令,安装Python3.9: ``` ./configure --enable-optimizations make -j8 sudo make altinstall ``` 以上命令中,./configure用于自动检测和配置操作系统环境;make用于编译源代码;make altinstall用于安装Python3.9,并将其与Python3.6同时存在于系统中。 3. 更改软链接 由于Linux系统中的/usr/bin/python3软链接指向的是Python3.6版本,需要对其进行更改。在终端中输入以下命令,将软链接指向Python3.9: ``` sudo ln -sf /usr/local/bin/python3.9 /usr/bin/python3 ``` 4. 验证Python版本 重新打开终端,输入以下命令,验证Python版本是否已升级为3.9: ``` python3 -V ``` 如果结果显示为Python 3.9.x,则说明Python版本已经成功升级了。 总之,要升级Linux系统上的Python3.6版本为3.9,需要下载Python3.9安装包,解压并安装,更改/usr/bin/python3软链接指向Python3.9,并顺利验证是否升级成功。以上操作需要具备一定的Linux系统操作经验,如果缺乏相关知识,建议寻求专业人士的帮助。 ### 回答3: Linux是一种开源操作系统,而Python则是一种非常流行的编程语言。Python 3.6是Python的旧版本,而Python 3.9则是Python的最新版本。Python 3.9引入了一些新的特性和改进,包括更高的性能、更好的语法和更强大的库。 升级Python 3.6到Python 3.9是一项相对简单的任务。首先,确保系统上安装了必要的依赖项。为此,可以使用以下命令: $ sudo apt-get update $ sudo apt-get install build-essential checkinstall $ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev zlib1g-dev openssl libffi-dev python3-dev python3-setuptools wget 接下来,下载Python 3.9的源代码。可以在https://www.python.org/downloads/上找到Python 3.9的源代码,或者使用以下命令下载源代码: $ wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz 下载完成后,将源代码解压缩到当前目录,并使用以下命令在系统上安装Python 3.9: $ tar -xf Python-3.9.0.tgz $ cd Python-3.9.0/ $ ./configure $ make $ sudo make install 安装完成后,检查系统上所有Python版本的位置。可以使用以下命令: $ whereis python 这将显示系统上所有的Python版本的路径。为了让系统默认使用Python 3.9,可以使用以下命令: $ sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.9 1 现在,Python 3.9已经安装完成,并设置成了默认版本。可以使用以下命令检查Python的版本: $ python -V 如果Python版本为3.9,则表示升级成功。 总之,将Python 3.6升级为Python 3.9是一项简单的任务,只需要按照上述步骤依次操作即可。升级到最新版本的Python可以为开发者提供更好的编程体验,以及更快、更高效的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值