文章目录

  • 一、python 版本选型
  • Django 版本和 Python 版本的对照关系
  • 二、linux下 python安装
  • ubuntu20.04 安装
  • **Linux Ubuntu 20.04 LTS 一键安装 Python3 不同版本的方法**
  • centos8 编译安装Python 3.8.10
  • 编译过程中遇到的问题
  • 提示编译成功,还是有些模块未编译好
  • 缺少_ctypes模块
  • 创建虚拟环境
  • 三、windows下安装python
  • windows下安装python 3.10


一、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学哪个版本 python哪个版本比较好_linux


我们先看官方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学哪个版本 python哪个版本比较好_django_02

个人工作技巧:我们选型完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

更新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

安装pip

sudo apt install python3-pip

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

sudo apt install python3.10-venv

激活虚拟环境

source venv/bin/activate

退出虚拟环境

deactivate

centos8 编译安装Python 3.8.10

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

  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. 下载python到临时目录
VERSION=3.8.10
wget -P /tmp/ https://www.python.org/ftp/python/${VERSION}/Python-${VERSION}.tgz

下载到临时目录去编译,

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

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

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

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

nproc
make -j 8

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

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

sudo make altinstall

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
缺少_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

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

python3.8 -m venv my_app_venv

激活环境:

source my_app_venv/bin/activate

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

三、windows下安装python

windows下安装python 3.10

  1. 官网下载:https://www.python.org/downloads/release/python-3108/
  2. 安装

python学哪个版本 python哪个版本比较好_python_03