Ubuntu 安装 Python 有哪些依赖项
在Ubuntu上安装Python有三种常见方式:APT安装需python3、pip、dev、venv和build-essential;源码编译需构建工具、SSL、压缩、数据库等依赖;pyenv管理多版本需编译依赖和辅助工具。安装完成后建议创建虚拟环境隔离项目依赖,避免全局冲突,保障项目环境独立。
聊到在Ubuntu上安装Python,很多新手都会被各种依赖搞晕。其实把场景拆开看,无非就是三种常见情况:直接用系统包管理器装、从源码编译、或者用pyenv管理多版本。每种场景下需要准备的依赖略有不同,下面逐一梳理清楚。

APT 安装场景
如果你只是想快速用上系统自带的Python版本,走APT是最省心的路。系统会自动帮你打理好底层依赖,你只需要告诉它要装哪几个包。不同Ubuntu版本里包名可能差个数字后缀,但功能等价——记住这几个核心的就够了:
- 核心运行与包管理:
python3、python3-pip - 开发与编译:
python3-dev、build-essential - 虚拟环境:
python3-venv
实际安装时一行命令搞定:
sudo apt update
sudo apt install python3 python3-pip python3-dev python3-venv build-essential
这套组合拳覆盖了绝大多数日常开发和部署场景,也是推荐给入门者的方案。
从源码编译安装场景
如果你需要定制Python编译参数(比如开启性能优化),或者系统仓库里没有你想要的版本,那就得从源码动手了。编译Python解释器本体时,最怕的是编译到一半报错“缺xxx库”。所以建议一次性把下面的依赖都装上,它们覆盖了SSL加密、压缩、数据库、编码、Tk图形等常见模块的需求:
- 基础工具链:
build-essential、gcc、make - SSL/加密:
libssl-dev、libffi-dev、python-openssl - 压缩与归档:
zlib1g-dev、libbz2-dev、liblzma-dev - 数据库与解析:
libsqlite3-dev、libreadline-dev、libncurses5-dev、libncursesw5-dev - GUI/Tk:
tk-dev - 其他常用:
libgdbm-dev、libdb-dev、libpcap-dev、xz-utils、libexpat1-dev、libc6-dev
装好这些依赖后,编译的步骤很简单:下载源码,然后 ./configure --enable-optimizations(开启优化),接着 make -j $(nproc) 并行编译,最后 sudo make altinstall(注意用 altinstall 而不是 install,避免覆盖系统的默认 python3)。按这个清单准备,基本不会因为缺库而卡住。
使用 pyenv 管理多版本时的依赖
如果你需要在同一台机器上同时维护多个Python版本(比如不同项目要求不同的Python 3.x小版本),pyenv 是最方便的工具。它会在用户态编译各个版本,所以编译层面的依赖和上面源码编译几乎一样。额外再补上一些辅助工具会更顺手:
- 构建与压缩:
build-essential、libssl-dev、zlib1g-dev、libbz2-dev、libreadline-dev、libsqlite3-dev、libffi-dev、liblzma-dev、xz-utils - 可选增强:
llvm、wget、curl、git
安装 pyenv 本身只需一行命令:curl https://pyenv.run | bash。之后记得把配置加到 shell 的配置文件里(~/.bashrc 或 ~/.zshrc):
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
只要提前装好了编译依赖,pyenv 后续安装任何Python版本都不会再报错。
安装后验证与常用后续步骤
不管用哪种方式装完,第一件事肯定是验证安装是否成功:
python3 --version
pip3 --version
如果版本号正常显示,恭喜你,环境已经就绪。接下来推荐的标准化操作是:创建虚拟环境来隔离项目依赖——python3 -m venv venv && source venv/bin/activate,然后在虚拟环境里用 pip install -r requirements.txt 安装项目所需的包。这样做的好处是,不同项目之间不会互相打架,也不会污染系统级的Python环境。养成这个习惯,能省去很多后期头疼的依赖冲突问题。


































