Ubuntu安装Python的常用方法
在Ubuntu上安装Python,方法其实不少,各有各的适用场景。常见的路子包括:直接用系统自带的APT包管理器、通过deadsnakes PPA获取更多版本、从源码手动编译、用pyenv进行多版本管理,以及使用Anaconda或Miniconda这种为数据科学量身打造的一站式方案。下面,咱们就来详细聊聊每种方法的适用场景和关键步骤,帮你找到最适合自己的那条路。
方法对比
| 方法 | 适用场景 | 核心命令或要点 | 版本可控性 | 隔离与依赖 | 备注 |
|---|---|---|---|---|---|
| APT | 追求稳定、想快速安装系统仓库里现成的版本 | sudo apt update && sudo apt install python3 python3-pip | 中(版本随仓库更新) | 中 | 最省心,推荐给大多数入门和日常开发用户 |
| deadsnakes PPA | 需要官方仓库里没有的特定小版本,比如最新的3.11或3.12 | 添加PPA后,执行 apt install python3.x | 中-高 | 中 | 适合那些对Python版本有精确要求的项目 |
| 源码编译 | 需要自定义编译选项,或者追求最新/极旧的版本 | ./configure --enable-optimizations && make -jN && sudo make altinstall | 高 | 中-高 | 务必使用altinstall,这是避免覆盖系统默认python3的关键 |
| pyenv | 需要在同一台机器上管理多个Python版本,并能按项目灵活切换 | curl https://pyenv.run | bash;然后 pyenv install 3.x.x | 高 | 高 | 版本管理利器,强烈建议配合pyenv-virtualenv来管理虚拟环境 |
| Anaconda/Miniconda | 专注于数据科学、机器学习,需要开箱即用的环境和丰富的科学计算包 | bash Anaconda3-*.sh;然后 conda create -n env python=3.x | 高 | 高 | 自带强大的包与环境管理,隔离性非常好,但体积相对较大 |
关键步骤速览
-
APT安装(最推荐)
- 更新软件包索引:
sudo apt update - 安装Python3和pip:
sudo apt install python3 python3-pip - 验证安装:
python3 --version、pip3 --version
一句话点评:这是最适合大多数用户的方法,依赖自动解决,与系统兼容性最佳,几乎不会出岔子。
- 更新软件包索引:
-
使用deadsnakes PPA安装特定版本
- 启用Universe仓库:
sudo add-apt-repository universe - 安装管理PPA的工具:
sudo apt install software-properties-common - 添加deadsnakes PPA:
sudo add-apt-repository ppa:deadsnakes/ppa - 安装特定版本(如3.10):
sudo apt install python3.10 python3.10-dev - 验证:
python3.10 --version
一句话点评:当你需要像3.10、3.11这类在默认仓库里找不到的特定版本时,它就是救星。
- 启用Universe仓库:
-
从源码编译安装
- 安装构建依赖:
sudo apt install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncurses5-dev libffi-dev liblzma-dev wget - 下载源码包:
wget https://www.python.org/ftp/python/3.x.x/Python-3.x.x.tgz - 解压并编译:
tar -xf Python-3.x.x.tgz && cd Python-3.x.x && ./configure --enable-optimizations && make -j$(nproc) - 安装(关键步骤):
sudo make altinstall(务必用altinstall,防止覆盖系统默认python3) - 验证:
python3.x --version
一句话点评:自由度最高,可以定制各种编译选项,但步骤稍繁琐,更适合高级用户或特定需求。
- 安装构建依赖:
-
使用pyenv管理多版本
- 安装系统依赖(示例):
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - 安装pyenv:
curl https://pyenv.run | bash - 配置Shell环境:将以下内容添加到
~/.bashrc或~/.zshrc,然后执行source ~/.bashrcexport PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
- 安装与切换版本:
pyenv install 3.10.0;pyenv global 3.10.0(全局设置)或pyenv local 3.10.0(项目目录内设置) - 验证:
python --version
一句话点评:实现多版本Python和平共处、随意切换的终极武器,配合虚拟环境插件使用体验更佳。
- 安装系统依赖(示例):
-
使用Anaconda/Miniconda
- 下载安装脚本并运行:
bash Anaconda3-*.sh,然后跟着提示完成安装和shell初始化。 - 创建独立环境:
conda create -n myenv python=3.9 - 激活环境:
conda activate myenv - 验证:
python --version、conda --version
一句话点评:数据科学领域的“全家桶”,环境隔离彻底,预装了海量科学计算库,省去了大量配置依赖的麻烦。
- 下载安装脚本并运行:
安装后的配置与建议
- 升级pip并验证:安装后,首先运行
python3 -m pip install --upgrade pip来升级pip到最新版,然后用pip3 --version确认。 - 使用venv创建虚拟环境:如果系统没装,先
sudo apt install python3-venv。创建环境只需:python3 -m venv .venv && source .venv/bin/activate。 - 处理多版本与默认版本:系统级默认版本可以用
update-alternatives命令管理。但更优雅的做法是,直接使用pyenv或conda在项目级别进行隔离和指定。 - 常见问题速解:
- 依赖缺失:源码编译前,务必把
libssl-dev、libffi-dev、zlib1g-dev这些开发库装全。 - 覆盖系统Python:源码安装时,记住
make altinstall这个“安全口令”,它能保你系统无恙。 - 命令未找到:安装后如果输入命令没反应,检查一下PATH环境变量,看看是否包含了新安装的路径(比如
~/.pyenv/shims或者Anaconda的bin目录)。
- 依赖缺失:源码编译前,务必把
