Python 是一门功能强大且应用广泛的编程语言,其知识点涵盖基础语法、进阶特性、标准库与第三方库以及应用领域等多个方面。以下是详细的知识点总结:

基础语法

  1. 变量与数据类型

    • 变量无需声明类型,直接赋值即可创建。
    • 基本数据类型包括整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
    • 列表是可变的序列,元组是不可变的序列,字典是键值对的集合,集合是无序且元素唯一的容器。
  2. 运算符与表达式

    • 算术运算符:+  -  *   等。
    • 比较运算符:==  !=  >   等。
    • 逻辑运算符:and  or  not
    • 位运算符:|  ^  ~  <<  >>
    • 赋值运算符:=  +=  -=  等。
  3. 控制流语句

    • 条件语句:ifelifelse
    • 循环语句:for 循环(遍历序列)、while 循环(条件循环)。
    • 循环控制语句:break(跳出循环)、continue(跳过当前循环的剩余部分)。
  4. 函数

    • 使用 def 关键字定义函数。
    • 参数传递方式包括位置参数、默认参数、关键字参数、可变位置参数(*args)和可变关键字参数(**kwargs)。
    • 支持匿名函数(lambda 表达式)。

进阶特性

  1. 面向对象编程

    • 类与对象:使用 class 关键字定义类,通过类名加括号创建对象。
    • 继承:子类可以继承父类的属性和方法,使用 super() 调用父类方法。
    • 多态:同一操作作用于不同的对象,可以有不同的解释和执行结果。
    • 封装:通过设置私有属性和方法来控制访问权限。
  2. 异常处理

    • 使用 try...except...finally 语句块捕获和处理异常。
    • 可以自定义异常类,继承自 Exception 类。
  3. 迭代器与生成器

    • 迭代器:遵循迭代器协议的对象,可以使用 next() 函数获取下一个值。
    • 生成器:使用 yield 关键字定义的函数,返回迭代器,可以动态地产生一系列数据,避免内存占用。
  4. 装饰器

    • 装饰器是一个函数,用于修改其他函数或类的行为。
    • 通过在函数或类定义前加上 @装饰器名 来使用。
  5. 上下文管理器

    • 使用 with 语句简化资源的管理,如文件、网络连接等。
    • 自定义上下文管理器需要实现 __enter__() 和 __exit__() 方法。
  6. 并发编程

    • 多线程:使用 threading 模块创建线程,实现并发执行。
    • 多进程:使用 multiprocessing 模块创建进程,充分利用多核 CPU。
    • 异步编程:使用 asyncio 模块实现异步 I/O 和事件循环,处理并发任务。

标准库与第三方库

  1. 标准库

    • os:提供操作系统相关的功能,如文件/目录操作、环境变量管理等。
    • sys:提供 Python 解释器相关的功能,如命令行参数、模块搜索路径等。
    • re:提供正则表达式相关的功能,用于字符串匹配和替换。
    • datetime:处理日期和时间。
    • json:处理 JSON 数据。
    • collections:提供额外的数据结构,如 CounternamedtupleOrderedDictdefaultdict 和 deque
    • itertools:提供组合计算函数,如 productpermutationcombinations 等。
  2. 第三方库

    • Web 开发Flask(轻量级 Web 框架)、Django(功能强大的 Web 框架)、FastAPI(现代、快速的 Web 框架)。
    • 数据分析Pandas(提供高性能、易用的数据结构和数据分析工具)、NumPy(科学计算基础库,支持大规模数值计算)。
    • 数据可视化Matplotlib(2D 绘图库)、Seaborn(基于 Matplotlib 的高级可视化库)、Plotly(交互式图表库)。
    • 机器学习Scikit-learn(机器学习库,提供分类、回归、聚类、降维等算法)、TensorFlow 和 PyTorch(深度学习框架)。
    • 网络爬虫Requests(HTTP 库,简化 HTTP 请求的发送和响应的处理)、BeautifulSoup(HTML 和 XML 解析库)、Scrapy(强大的爬虫框架)。
    • 数据库操作SQLite3(轻量级数据库)、SQLAlchemy(ORM 库,支持多种数据库)、Pymongo(MongoDB 的 Python 驱动程序)。

应用领域

  1. Web 开发:使用 FlaskDjango 等框架进行 Web 应用开发,处理 HTTP 请求、路由、模板渲染等。
  2. 数据分析与科学计算:使用 PandasNumPy 等库进行数据处理和分析,使用 MatplotlibSeaborn 等库进行数据可视化。
  3. 机器学习与深度学习:使用 Scikit-learnTensorFlowPyTorch 等库进行模型训练和预测。
  4. 网络爬虫:使用 RequestsBeautifulSoupScrapy 等库爬取网页数据,进行信息提取和分析。
  5. 自动化运维:使用 Python 编写脚本,实现自动化部署、监控和故障排除。

一、安装Python

更新软件包列表 & 安装编译依赖

sudo apt update
sudo apt install -y \
    build-essential \
    libncurses5-dev \
    libreadline-dev \
    libsqlite3-dev \
    libgdbm-dev \
    libnss3-dev \
    zlib1g-dev \
    libssl-dev \
    libffi-dev \
    libbz2-dev \
    make \
    wget

二、下载并编译 Python 源码

1. 下载 Python 源码包

前往 Python 官方下载页 获取最新稳定版(本文以 Python 3.11.10 为例):

wget https://www.python.org/ftp/python/3.11.10/Python-3.11.10.tgz
tar -xvf Python-3.11.10.tgz
cd Python-3.11.10

2. 配置编译选项

./configure \
    --prefix=/usr/local/python-3.11.10 \
    --enable-optimizations \
    --with-ensurepip=install

参数说明:

  • --enable-optimizations:启用性能优化(PGO),提升运行速度,但编译时间更长
  • --with-ensurepip=install:安装时自动安装 pip
  • --enable-shared:生成共享库(.so),避免后续 libpython3.13.so.1.0 找不到的问题

3. 编译并安装

make -j$(nproc)
sudo make altinstall

⚠️ 重要:使用 altinstall 而不是 install

  • make install 会覆盖系统默认的 python3,可能导致系统工具(如 apt)异常
  • make altinstall 安装为 python3.13,保留系统 python3 不变

4. 创建软链接(便于管理与升级)

sudo ln -s /usr/local/python-3.11.10/ /usr/local/python

5. 配置环境变量

echo 'export PATH="/usr/local/python/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

三、验证安装结果

python3.11 --version
pip3.11 --version

四、配置 pip 国内镜像源

方法一:临时使用(单次命令)

pip3.11 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

方法二:永久配置(推荐)

1. 创建 pip 配置目录
mkdir -p ~/.pip
2. 编辑配置文件
vim ~/.pip/pip.conf
3. 写入以下配置
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
extra-index-url =
    https://mirrors.aliyun.com/pypi/simple/
    https://pypi.doubanio.com/simple/
    https://pypi.mirrors.ustc.edu.cn/simple/

[install]
trusted-host =
    pypi.tuna.tsinghua.edu.cn
    mirrors.aliyun.com
    pypi.doubanio.com
    pypi.mirrors.ustc.edu.cn

配置说明:

  • index-url:主镜像源(清华,速度快)
  • extra-index-url:备用源,主源失败时自动切换
  • trusted-host:避免 HTTPS 证书验证错误
4. 验证配置是否生效
pip3.11 config list

五、Shell 脚本自动化安装

#!/bin/bash
# Ubuntu 源码安装 Python 3.11.10 一键脚本
# 作者:LoneEon 

set -e  # 遇错误立即退出

# =============== 可配置参数 ===============
PYTHON_VERSION="3.11.10"           # 要安装的 Python 版本
PYTHON_MAJOR_MINOR="3.11"         # 主版本号(用于可执行文件名)
PREFIX="/usr/local/python-${PYTHON_VERSION}"
TEMP_DIR="/tmp/python_build"
PIP_CONF_DIR="$HOME/.pip"
PIP_CONF_FILE="$PIP_CONF_DIR/pip.conf"
# ==========================================

echo "🚀 开始安装 Python ${PYTHON_VERSION} ..."

# 1. 创建临时目录
mkdir -p $TEMP_DIR
cd $TEMP_DIR

# 2. 更新系统并安装编译依赖
echo "📦 正在安装编译依赖..."
sudo apt update
sudo apt install -y \
    build-essential \
    libncurses5-dev \
    libreadline-dev \
    libsqlite3-dev \
    libgdbm-dev \
    libnss3-dev \
    zlib1g-dev \
    libssl-dev \
    libffi-dev \
    libbz2-dev \
    liblzma-dev \
    wget \
    make

# 3. 下载 Python 源码
echo "⬇️ 正在下载 Python ${PYTHON_VERSION} 源码..."
wget -O Python-${PYTHON_VERSION}.tgz https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz

# 4. 解压源码
echo "📦 正在解压..."
tar -xzf Python-${PYTHON_VERSION}.tgz
cd Python-${PYTHON_VERSION}

# 5. 配置编译选项
echo "⚙️ 正在配置编译参数..."
./configure \
    --prefix=${PREFIX} \
    --enable-optimizations \
    --enable-shared \
    --with-ensurepip=install

# 6. 编译(使用所有 CPU 核心)
echo "🔥 正在编译 Python ${PYTHON_VERSION}(可能需要 5-15 分钟)..."
make -j$(nproc)

# 7. 安装(使用 altinstall 避免覆盖系统 python3)
echo "✅ 正在安装..."
sudo make altinstall

# 8. 创建软链接目录并链接
echo "🔗 创建软链接..."
sudo mkdir -p /usr/local/python
sudo ln -sf ${PREFIX} /usr/local/python/${PYTHON_VERSION}
sudo ln -sf ${PREFIX}/bin/python${PYTHON_MAJOR_MINOR} /usr/local/bin/python${PYTHON_MAJOR_MINOR}
sudo ln -sf ${PREFIX}/bin/pip${PYTHON_MAJOR_MINOR} /usr/local/bin/pip${PYTHON_MAJOR_MINOR}

# 9. 解决 libpython 动态链接库问题
echo "🔧 配置动态库路径..."
echo "${PREFIX}/lib" | sudo tee /etc/ld.so.conf.d/python-${PYTHON_VERSION}.conf
sudo ldconfig

# 10. 添加环境变量到 ~/.bashrc(如果尚未添加)
if ! grep -q "export PATH=\"/usr/local/python/bin:\$PATH\"" "$HOME/.bashrc"; then
    echo 'export PATH="/usr/local/python/bin:$PATH"' >> "$HOME/.bashrc"
    echo "📌 已添加 PATH 到 ~/.bashrc,请重新登录或执行 source ~/.bashrc"
fi

# 11. 创建并配置 pip 国内镜像源
echo "🌐 配置 pip 国内镜像源(清华 + 阿里 + 豆瓣 + 中科大)..."
mkdir -p $PIP_CONF_DIR
cat > $PIP_CONF_FILE << 'EOF'
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
extra-index-url =
    https://mirrors.aliyun.com/pypi/simple/
    https://pypi.doubanio.com/simple/
    https://pypi.mirrors.ustc.edu.cn/simple/

[install]
trusted-host =
    pypi.tuna.tsinghua.edu.cn
    mirrors.aliyun.com
    pypi.doubanio.com
    pypi.mirrors.ustc.edu.cn
EOF

# 12. 验证安装
echo "🔍 验证安装结果..."
python${PYTHON_MAJOR_MINOR} --version
pip${PYTHON_MAJOR_MINOR} --version

# 13. 清理临时文件
echo "🧹 清理临时文件..."
cd /
rm -rf $TEMP_DIR

echo "🎉 Python ${PYTHON_VERSION} 安装完成!"
echo "💡 使用方式:"
echo "   - Python: python${PYTHON_MAJOR_MINOR}"
echo "   - Pip:    pip${PYTHON_MAJOR_MINOR}"
echo "   - 镜像源已配置,安装包速度飞快!"
echo "📌 请重新登录终端或运行:source ~/.bashrc"

常见问题与解决方案

问题原因解决方案
ModuleNotFoundError: No module named '_ssl'缺少 OpenSSL 开发包安装 libssl-dev 并重新编译
pip command not found未启用 ensurepip重新编译时加 --with-ensurepip=install
Could not fetch URL镜像源不可信检查 trusted-host 配置
安装包速度仍慢DNS 问题可尝试更换 DNS 为 114.114.114.114 或 8.8.8.8

本文详细介绍如何在 Ubuntu 系统上从源码编译安装 Python 3.11,并配置 pip 使用国内镜像源以大幅提升包下载速度,内容涵盖环境准备、源码编译、安装步骤及基于徐步前行 Blog 的推荐方案进行永久镜像源配置,帮助开发者搭建高效、稳定的 Python 开发环境。

更多推荐