下面我将为你提供一份详尽的、从零开始的 Python 环境配置指南,涵盖多种主流方法,并推荐最适合现代开发的方法。
Ubuntu 16.04 的 Python 现状
- 默认 Python 2:
python命令指向 Python 2.7.12 - 默认 Python 3:
python3命令指向 Python 3.5.2 - 系统 Python: 系统的许多工具(如
apt)依赖于 Python 2.7,强烈建议不要直接修改或删除系统自带的 Python,以免导致系统不稳定。 - 目标: 为你的用户账户安装一个独立的、新版本的 Python(如 Python 3.8, 3.9, 3.10),并配置好包管理工具和虚拟环境。
使用 deadsnakes PPA (推荐,最简单)
deadsnakes 是一个非常有名的第三方软件源,专门用于为 Ubuntu 提供各种新版本的 Python,这是在旧版 Ubuntu 上安装新 Python 最简单、最可靠的方法之一。
步骤 1: 添加 deandsnakes PPA 并更新软件源
打开终端,执行以下命令:
# 添加 deandsnakes PPA sudo add-apt-repository ppa:deadsnakes/ppa # 更新软件包列表 sudo apt-get update
在添加 PPA 时,系统会提示你按 Enter 键确认,按提示操作即可。
步骤 2: 安装你需要的 Python 版本
我们要安装 Python 3.8, 3.9 和 3.10:
# 安装 Python 3.8 sudo apt-get install python3.8 # 安装 Python 3.9 sudo apt-get install python3.9 # 安装 Python 3.10 sudo apt-get install python3.10
安装完成后,你可以通过以下命令验证安装:
# 检查 Python 3.8 版本 python3.8 --version # 应该输出: Python 3.8.x # 检查 Python 3.9 版本 python3.9 --version # 应该输出: Python 3.9.x # 检查 Python 3.10 版本 python3.10 --version # 应该输出: Python 3.10.x
步骤 3: 安装对应的 pip 和 venv
新版本的 Python 通常会自带 venv 模块,但 pip 可能需要单独安装。
# 为每个 Python 版本安装 pip 和开发头文件 sudo apt-get install python3.8-dev python3.8-venv python3.8-distutils sudo apt-get install python3.9-dev python3.9-venv python3.9-distutils sudo apt-get install python3.10-dev python3.10-venv python3.10-distutils
注意: pythonX.Y-dev 包提供了编译 C 扩展所需的头文件,如果你需要安装一些需要编译的包(如 psycopg2, numpy 等),这个包是必需的。
步骤 4: 创建和激活虚拟环境
虚拟环境是 Python 开发的最佳实践,它能隔离项目依赖,避免冲突。
假设你的项目文件夹是 my_project,你想在里面使用 Python 3.9:
# 创建项目文件夹 mkdir my_project cd my_project # 使用 Python 3.9 创建虚拟环境 python3.9 -m venv venv # 激活虚拟环境 source venv/bin/activate # 激活后,你的命令行提示符前面会出现 (venv) # (venv) user@ubuntu:~/my_project$ # 现在在这个环境中,python 命令指向的是 Python 3.9 python --version # 输出: Python 3.9.x # 安装项目依赖 pip install requests numpy # 退出虚拟环境 deactivate
手动从源码编译安装 (最灵活)
这种方法可以让你安装最新的 Python 版本,并且完全由你控制编译选项,但过程稍复杂,耗时较长。
步骤 1: 安装编译所需的依赖
sudo apt-get update sudo apt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
步骤 2: 下载 Python 源码
访问 Python 官网 找到你想要的版本(Python 3.10.8),下载并解压:
# 以 Python 3.10.8 为例 wget https://www.python.org/ftp/python/3.10.8/Python-3.10.8.tgz tar -xvf Python-3.10.8.tgz cd Python-3.10.8
步骤 3: 配置、编译和安装
# 配置安装路径(推荐使用 --prefix) # --enable-optimizations 会进行优化,但编译时间更长 ./configure --prefix=/usr/local --enable-optimizations # 编译 (make -j 可以利用多核CPU加速) make -j$(nproc) # 安装 (需要 sudo 权限) sudo make altinstall
注意:
- 使用
make altinstall而不是make install。altinstall会避免覆盖系统默认的python3命令,防止破坏系统环境。 --prefix=/usr/local将 Python 安装在/usr/local目录下,这是存放用户自行编译软件的惯例位置。
步骤 4: 验证和配置虚拟环境
安装完成后,新的 Python 可执行文件会放在 /usr/local/bin 下。
# 验证安装 /usr/local/bin/python3.10 --version # 应该输出: Python 3.10.8 # 安装 pip curl https://bootstrap.pypa.io/get-pip.py | /usr/local/bin/python3.10 # 创建虚拟环境 mkdir my_project_src cd my_project_src /usr/local/bin/python3.10 -m venv venv # 激活虚拟环境 source venv/bin/activate
使用 pyenv (最强大,推荐给高级用户)
pyenv 是一个优秀的 Python 版本管理工具,它允许你在同一台机器上轻松安装和切换多个 Python 版本,并且不会干扰系统 Python。
步骤 1: 安装 pyenv 的依赖
sudo apt-get update sudo apt-get install -y make 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
步骤 2: 安装 pyenv
使用官方的安装脚本是最简单的方式:
curl https://pyenv.run | bash
步骤 3: 配置 Shell 环境
安装后,你需要将 pyenv 的初始化命令添加到你的 Shell 配置文件中(~/.bashrc)。
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc
然后重新加载配置文件使其生效:
exec "$SHELL" # 或者 source ~/.bashrc
步骤 4: 使用 pyenv 安装和切换 Python
现在你可以用 pyenv 安装任何你想要的 Python 版本了。
# 安装 Python 3.9.16 pyenv install 3.9.16 # 查看所有已安装的版本 pyenv versions # * system (set by /home/user/.pyenv/version) # 3.9.16 # 设置全局 Python 版本 (对所有新终端生效) pyenv global 3.9.16 # 验证 python --version # 输出: Python 3.9.16 # 为单个项目设置局部 Python 版本 cd my_project pyenv local 3.10.8 # 会在当前目录创建一个 .python-version 文件 python --version # 输出: Python 3.10.8
pyenv 已经自带了 venv 模块,你可以直接使用:
python -m venv venv source venv/bin/activate
总结与推荐
| 方法 | 优点 | 缺点 | 适用人群 |
|---|---|---|---|
deadsnakes PPA |
最简单,快速,稳定,由社区维护。 | 版本可能不是最新的,依赖 APT 生态。 | 绝大多数用户,特别是初学者和追求效率的开发者。 |
| 手动编译 | 最灵活,可编译最新版,可自定义选项。 | 过程复杂,耗时,容易出错,需手动管理。 | 需要特定编译选项或最新稳定版的高级用户。 |
pyenv |
最强大,版本管理极其方便,隔离性好,不影响系统。 | 安装配置稍复杂,占用更多磁盘空间。 | 需要频繁在多个 Python 版本间切换的开发者,DevOps 人员。 |
对于 Ubuntu 16.04 上的 Python 开发,我的首推是 deadsnakes PPA 方法。
它完美地平衡了简单性、稳定性和功能性,你只需要几条命令就能获得多个稳定的新版 Python,并能立即开始使用 venv 进行项目开发,这是最符合“开箱即用”原则的方案,如果你发现自己需要管理非常多的 Python 版本,或者需要一些 deadsnakes 没有的极新版本,再考虑 pyenv。
