杰瑞科技汇

Ubuntu安装Python步骤有哪些?

核心摘要:你应该选择哪种方法?

场景 推荐方法 优点 缺点
新手 / 日常使用 使用 apt 简单、快速,与系统集成度高 版本可能较旧,不适合特定项目需求
开发者 / 项目需要特定版本 使用 pyenv 强烈推荐,可以轻松安装和管理多个 Python 版本,隔离性好 需要额外安装和配置
需要最新稳定版 从源码编译 可以获得最新的功能和性能优化 过程复杂,容易出错,不推荐新手
快速体验 / 临时使用 使用 Snap 一键安装,自动更新,与系统隔离 可能存在性能或兼容性问题

使用 apt (适用于新手和日常使用)

这是 Ubuntu 系统自带的包管理器方式,最简单直接,它会安装 Python 3,并自动配置好 python3 命令。

Ubuntu安装Python步骤有哪些?-图1
(图片来源网络,侵删)

更新软件包列表

在安装任何软件之前,最好先更新一下你的软件包列表,确保获取到最新的信息。

sudo apt update

安装 Python 3

执行以下命令来安装 Python 3 及其核心开发工具(如 pip 包管理器、venv 虚拟环境等)。

sudo apt install python3 python3-pip python3-venv
  • python3: Python 解释器本身。
  • python3-pip: Python 的包安装工具,相当于 apt 但用于 Python 库。
  • python3-venv: 创建虚拟环境的工具,强烈建议在项目中使用。

验证安装

安装完成后,检查版本号以确认安装成功。

python3 --version
# 应该会输出类似 Python 3.10.6 的信息
pip3 --version
# 应该会输出 pip 的版本和路径

优点:

Ubuntu安装Python步骤有哪些?-图2
(图片来源网络,侵删)
  • 简单快捷:一条命令搞定。
  • 系统集成apt 会自动处理依赖关系,并与系统其他部分良好配合。

缺点:

  • 版本固定:你安装的版本是 Ubuntu 官方仓库提供的,通常不是最新的稳定版,Ubuntu 22.04 默认提供 Python 3.10,而 Python 3.12 可能已经发布。
  • 权限问题:使用 pip3 全局安装包时,有时需要 sudo,这可能会破坏系统包的纯净性。

使用 pyenv (强烈推荐给开发者)

pyenv 是一个强大的 Python 版本管理工具,它允许你在同一台机器上轻松安装、切换和使用多个 Python 版本,而不会影响系统自带的 Python,这是专业开发者的首选。

安装 pyenv 的依赖项

在安装 pyenv 之前,需要先安装它所需要的编译工具和依赖库。

sudo apt update
sudo apt 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

安装 pyenv

使用 curl 下载并执行 pyenv 的安装脚本。

curl https://pyenv.run | bash

配置 Shell 环境

安装后,你需要将 pyenv 添加到你的 Shell 配置文件中,这样每次打开终端时它都会被加载。

对于 Bash (Ubuntu 默认 Shell):

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

对于 Zsh:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

重新加载 Shell 配置

执行以下命令让配置立即生效,或者关闭当前终端窗口,重新打开一个

exec "$SHELL"

使用 pyenv 安装 Python

现在你可以使用 pyenv 安装你想要的任何 Python 版本了,安装最新的稳定版 3.12:

# 查看所有可安装的版本
pyenv install --list
# 安装特定版本,Python 3.12.0
pyenv install 3.12.0

注意:编译和安装过程可能需要几分钟时间,请耐心等待。

切换 Python 版本

安装完成后,你可以轻松切换全局或当前目录的 Python 版本。

  • 设置全局 Python 版本(对所有新终端生效):
    pyenv global 3.12.0
  • 为当前目录设置 Python 版本(创建一个 .python-version 文件):
    pyenv local 3.12.0
  • 查看当前 Python 版本
    python --version  # 现在可以直接用 python,不需要 python3

优点:

  • 版本管理灵活:可以同时拥有多个版本,并随时切换。
  • 环境隔离:不会污染系统 Python。
  • 项目级控制:可以为每个项目指定不同的 Python 版本。

缺点:

  • 初始配置稍复杂:需要安装依赖和配置 Shell。

从源码编译 (适用于需要最新版)

如果你需要最新的、尚未被 aptpyenv 收录的 Python 版本,可以手动从源码编译。

安装编译依赖

与方法二中的第一步相同。

sudo apt update
sudo apt 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

下载 Python 源码

访问 Python 官网 获取最新版本的源码压缩包链接,然后使用 wget 下载。

# 下载 Python 3.12.0
wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz

解压并编译

# 解压
tar -xvf Python-3.12.0.tgz
# 进入解压后的目录
cd Python-3.12.0
# 配置编译选项 (推荐使用 --enable-optimizations 提升性能)
./configure --enable-optimizations
# 编译 (使用 -j 可以加快编译速度,-j4 使用4个核心)
make -j4
# 安装 (可能需要 sudo)
sudo make install

验证

python3.12 --version

优点:

  • 最新版本:可以获得最新的功能和 bug 修复。

缺点:

  • 过程复杂:步骤多,容易出错。
  • 耗时:编译过程非常耗时。
  • 依赖管理:需要自己确保所有依赖都已安装。

使用 Snap (适用于快速体验)

Snap 是一种现代化的软件打包格式,可以一键安装并自动更新。

安装 Python Snap

sudo snap install python --classic

--classic 参数允许这个 Snap 包像传统的 apt 包一样访问系统资源,这对于 Python 来说是必要的。

验证

python --version

优点:

  • 简单:一条命令安装。
  • 自动更新:Snap 会自动处理更新。

缺点:

  • 性能:由于沙箱机制,性能可能略低于原生安装。
  • 兼容性:某些与系统深度绑定的库可能不兼容。
  • 体积:Snap 包通常比 apt 包大。

最佳实践:为你的项目创建虚拟环境

无论你使用哪种方法安装 Python,强烈建议在开始一个新项目时,创建一个虚拟环境,这可以隔离项目依赖,避免不同项目之间的库版本冲突。

假设你已经安装了 Python 3 (通过 aptpyenv),python3 命令可用:

# 1. 创建项目目录并进入
mkdir my_project
cd my_project
# 2. 创建一个名为 venv 的虚拟环境
python3 -m venv venv
# 3. 激活虚拟环境
source venv/bin/activate
# (你的终端提示符前面会出现 (venv) 字样)
# 4. 在虚拟环境中安装包 (不需要 sudo)
pip install requests numpy
# 5. 退出虚拟环境
deactivate

当你下次需要工作时,只需 cd my_project 并再次运行 source venv/bin/activate 即可。

  • 如果你只是想写点脚本,用用系统自带的 python3 就完全足够了。
  • 如果你是开发者,或者你的项目对 Python 版本有特定要求,请务必使用 pyenv 这是目前最灵活、最专业的管理方式。
  • 除非有特殊需求(如研究新特性),否则不建议新手从源码编译。
  • Snap 是一个方便的选项,但 pyenv 在灵活性上更胜一筹。
分享:
扫描分享到社交APP
上一篇
下一篇