在安装Python前,确保系统包是最新的,并安装编译Python源码所需的依赖项(避免后续安装报错)。运行以下命令:
sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
这些依赖涵盖了编译工具链、SSL支持、数据库驱动、Unicode处理等关键组件,是编译Python的基础。
若不需要特定版本的Python,可通过Ubuntu的PPA(Personal Package Archive)安装官方维护的预编译版本,无需手动编译,速度更快且更稳定。例如安装Python 3.10:
sudo add-apt-repository ppa:deadsnakes/ppa # 添加dead snakes PPA(支持多版本Python)
sudo apt update
sudo apt install python3.10 # 直接安装指定版本
安装完成后,通过python3.10 --version验证版本,系统会自动处理依赖关系。
若需要特定版本(如Python 3.11)或更高性能,可从官网下载源码编译安装。关键优化点:
-j$(nproc)参数调用所有CPU核心,缩短编译时间。具体步骤:
# 下载并解压源码(以3.11.0为例)
wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz
tar -xf Python-3.11.0.tar.xz
cd Python-3.11.0
# 配置编译选项(启用PGO和优化)
./configure --enable-optimizations
# 编译并安装(并行编译,使用altinstall避免覆盖系统Python)
make -j$(nproc)
sudo make altinstall
编译完成后,通过python3.11 --version验证安装。
若需要同时运行多个Python版本(如开发时用3.10,生产用3.11),推荐使用pyenv工具,实现版本无缝切换。安装步骤:
# 安装pyenv及依赖
curl https://pyenv.run | bash
# 配置环境变量(添加到~/.bashrc或~/.zshrc)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
# 安装指定版本Python(如3.11.0)
pyenv install 3.11.0
# 设置全局/局部版本
pyenv global 3.11.0 # 全局默认版本
# 或进入项目目录设置局部版本(仅当前项目生效)
pyenv local 3.11.0
pyenv会自动处理不同版本的依赖冲突,切换版本只需一行命令。
避免全局安装包导致的版本冲突(如项目A用Django 3.x,项目B用Django 4.x),推荐使用venv模块创建轻量级虚拟环境:
# 创建虚拟环境(如myenv)
python3 -m venv myenv
# 激活虚拟环境
source myenv/bin/activate # 激活后,终端提示符会显示环境名
# 在虚拟环境中安装依赖(如Flask)
pip install flask
# 退出虚拟环境
deactivate
进阶技巧:使用requirements.txt记录项目依赖,方便团队协作或部署:
# 导出当前环境的依赖到requirements.txt
pip freeze > requirements.txt
# 从requirements.txt安装所有依赖
pip install -r requirements.txt
NumPy(数值计算)、Pandas(数据分析)、Cython(将Python代码编译为C扩展),提升关键代码段的性能。PyPy(带JIT的Python实现),对CPU密集型任务(如循环、数值计算)有显著加速效果(比CPython快2-5倍),但需注意兼容性(部分库可能不支持)。cProfile(标准库,统计函数调用时间)、line_profiler(逐行分析代码耗时)、memory_profiler(分析内存使用)、Py-Spy(非侵入式监控进程),定位性能瓶颈。通过以上步骤,可在Ubuntu上实现Python安装的快速化、灵活化、高性能化,满足不同场景的需求。