• python、django版本选型、linux下python安装


    一、python 版本选型

    官方下载地址:https://www.python.org/downloads/

    首先,是Python2.x和Python3.x的选择,这是两个大版本。目前Python2.x的版本更新和技术支持已经被官方停止了。Python2.x的最后一个版本是2020年发布的Python2.7.18。

    Python3.x并不是Python2.x的简单升级,为了不带入过多的累赘,Python 3.x 在设计的时候没有考虑向下兼容。因此,如果不是老代码维护,我们新代码建议采用Python3.x。

    ok,接下来,就是Python3.x 我们具体怎么选?

    在这里插入图片描述
    我们先看官方python 3.8.14 的描述
    注意:您正在查看的版本是 Python 3.8.13,它是旧版 3.8 系列的安全错误修复版本。Python 3.10现在是 Python 3 的最新功能发布系列。

    比如:根据PEP 569中指定的发布日历,Python 3.8 现在处于其生命周期的“仅安全修复”阶段:3.8 分支仅接受安全修复,并且在 2024 年 10 月之前不定期以仅源代码形式发布这些修复Python 3.8 不再接收常规错误修复,并且不再为其提供二进制安装程序。 Python 3.8.10是 Python 3.8 的最后一个完整的错误修复版本,带有二进制安装程序。

    可以看到Python 3.8,官方不再为其提供二进制安装程序,并且也只以源码的形式做安全问题修复。

    我们再看官方python 3.9.14
    注意:您正在查看的版本是 Python 3.9.14,它是旧版 3.9 系列的安全错误修复版本。

    没有安装程序
    根据PEP 596中指定的发布日历,Python 3.9 现在处于其生命周期的“仅安全修复”阶段:3.9 分支仅接受安全修复,并且在 2025 年 10 月之前不定期地以仅源代码的形式发布。 Python 3.9 不再接收常规的错误修复,并且不再为其提供二进制安装程序。Python 3.9.13是 Python 3.9 的最后一个带有二进制安装程序的完整错误修复版本。

    总结:当前最新是3.10.x,之前的版本都是只修复安全问题,如果有安全问题,我们需要下载最新的源码编译使用修复。

    整体来说问,问题不大,如果考虑到最新版本稳定性问题以及一些常用框架和python版本兼容性问题,我们就使用3.8、3.10版本,使用源码编译!

    Ubuntu 20.04 LTS 默认 Python 版本为3.8.10。
    Ubuntu 22.04 LTS (Jammy Jellyfish)。然而该版本默认的 Python 3 版本为 Python 3.10,高于许多开发者正在使用的 3.9、3.8 甚至更早版本。

    Django 版本和 Python 版本的对照关系

    官方链接:https://www.djangoproject.com/download/

    Django 在BSD 许可下开源 。我们建议使用最新版本的 Python 3。支持 Python 2.7 的最后一个版本是 Django 1.11 LTS。有关每个版本的 Django 支持的 Python 版本,参阅 常见问题解答

    在这里插入图片描述

    个人工作技巧:我们选型完python,直接只用pip 安装django以及各种依赖,不要带版本号,这样基本所有的依赖就是和当前python最兼容匹配的。

    二、linux下 python安装

    ubuntu20.04 安装

    Ubuntu 20.04 LTS 默认 Python 版本为3.8.10。
    Ubuntu 22.04 LTS (Jammy Jellyfish)。然而该版本默认的 Python 3 版本为 Python 3.10,高于许多开发者正在使用的 3.9、3.8 甚至更早版本。

    3.8.10 依然比较主流,这里推荐使用默认!
    3.10 貌似也是不错的选择!如果你直接使用Ubuntu 22.04 LTS,使用python 3.10开发会比较流畅,也不用重新安装python。

    Linux Ubuntu 20.04 LTS 一键安装 Python3 不同版本的方法

    添加 Python 的软件源,方便我们进行安装。
    sudo apt update
    sudo apt install software-properties-common
    #添加 Deadsnakes PPA(一个非常好用的第三方软件源):
    sudo add-apt-repository ppa:deadsnakes/ppa
    sudo apt update
    #安装不同版本 Python3, 如:3.10
    sudo apt install python3.10
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    更新python默认指向为python3.10
    首先,删除原有链接

    rm /usr/bin/python
    which python3
    ln -s /usr/bin/python3.10 /usr/bin/python
    
    
    rm /usr/bin/python3
    ln -s /usr/bin/python3.10 /usr/bin/python3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    安装pip

    sudo apt install python3-pip
    
    • 1

    安装 venv 这样一定要指定具体的版本号和python环境一致 如python3.10

    sudo apt install python3.10-venv
    
    • 1

    激活虚拟环境

    source venv/bin/activate
    
    • 1

    退出虚拟环境

    deactivate
    
    • 1

    centos8 编译安装Python 3.8.10

    在CentOS8上搭建Python3.8运行环境
    参考URL: https://www.modb.pro/db/144965
    Centos7安装Python3.8详细教程
    参考URL: https://blog.csdn.net/u010786653/article/details/122690588

    1. 按照编译python需要用到的依赖:
    sudo yum -y install gcc gcc-c++ zlib-devel bzip2-devel openssl-devel  sqlite-devel readline-devel libffi-devel
    sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel xz-devel gdbm-devel
    
    • 1
    • 2
    1. 下载python到临时目录
    VERSION=3.8.10
    wget -P /tmp/ https://www.python.org/ftp/python/${VERSION}/Python-${VERSION}.tgz
    
    • 1
    • 2

    下载到临时目录去编译,

    tar -xvzf /tmp/Python-${VERSION}.tgz -C /tmp/
    cd   /tmp/Python-${VERSION}
    
    • 1
    • 2
    1. 编译

    指定安装目录为 $HOME/python3(这一步会比较久)

    mkdir -p $HOME/python3
    #./configure --prefix=/usr/local/python3
    ./configure --prefix=$HOME/python3 --enable-optimizations
    
    • 1
    • 2
    • 3

    –enable-optimizations选项通过运行多次测试,来优化 Python 二进制文件。这将会使得构建过程更慢。

    nproc
    make -j 8
    
    • 1
    • 2

    修改 以对应于处理器中的内核数。你可以通过运行nproc来找到你的处理器核心数。
    PS: nproc命令可以显示当前进程可用的CPU数目,该数目可能小于实际工作数

    生成过程完成后,安装 Python 二进制文件(请不要使用标准的make install,因为它将覆盖默认的系统Python二进制文件):

    sudo make altinstall
    
    • 1

    make altinstall与make install的区别,altinstall skips creating the python link and the manual pages links。
    altinstall跳过创建python链接和手册页链接的操作。
    如果使用make install,在系统中将会有两个不同版本的Python在/usr/bin/目录中,这将会导致很多问题。
    因此我们在configure中配置一下编译安装路径就解决了这个问题。

    总结:如果我们编译参数没有没配置安装路径,使用默认安装路径的话,就需要使用 make altinstall。所以一般有多个版本时,我们直接使用 make altinstall 就好!

    编译过程中遇到的问题

    提示编译成功,还是有些模块未编译好

    Python build finished successfully! #提示安装成功
    The necessary bits to build these optional modules were not found:
    _dbm _gdbm _lzma
    _tkinter nis

    yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel xz-devel gdbm-devel
    
    • 1
    缺少_ctypes模块

    python3中有个内置模块叫ctypes,它是python3的外部函数库模块,提供了兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用centos7系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库),而在centos7系统中没有安装外部函数库(libffi)的开发链接库软件包。

    安装libffi包

    yum install libffi-devel

    创建虚拟环境

    Python 虚拟环境是一个自包含的目录树,其中包含 Python 安装和大量其他包。它允许您在特定项目的隔离位置安装 Python 模块,而不是全局安装。这样,您就不必担心影响其他 Python 项目。

    在此示例中,我们将创建一个新的 Python 3.8 项目,称为在用户主目录中。my_app

    首先,创建项目目录并切换到:

    mkdir ~/my_app && cd ~/my_app
    
    • 1

    从项目根内部运行以下命令以创建名为 :my_app_venv

    python3.8 -m venv my_app_venv
    
    • 1

    激活环境:

    source my_app_venv/bin/activate
    
    • 1

    激活后,shell 提示符将用环境名称前缀。从 Python 3.4 开始,在创建虚拟环境时,默认情况下将安装 Python 的包管理器pip。

    三、windows下安装python

    windows下安装python 3.10

    1. 官网下载:https://www.python.org/downloads/release/python-3108/
    2. 安装
      在这里插入图片描述
  • 相关阅读:
    又一个Java面试神器!!!
    2023年中国恒温蜡疗仪发展趋势分析:应用前景存有很大发展与探索空间[图]
    flink理论干货笔记(7)及spark论文相关思考
    IDEA的使用(五)IDEA中关联数据库(IntelliJ IDEA 2022.1.3版本)
    js的各种循环遍历
    Netty学习(二)概述+EventLoop+Channel+ByteBuf
    c++ STL:关于 std::vector 的移除删除函数remove()和erase()的使用
    [c/c++进阶必刷题(一)]
    QT开发实例之常用控件(上)
    epoll 的实现
  • 原文地址:https://blog.csdn.net/inthat/article/details/126916309