杰瑞科技汇

Ubuntu16如何配置Python环境?

下面我将为你提供一份详尽的、从零开始的 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 installaltinstall 会避免覆盖系统默认的 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

分享:
扫描分享到社交APP
上一篇
下一篇