Ubuntu上Python依赖包处理全流程指南
在安装Python依赖包前,需确保系统具备必要的工具链和包管理基础:
sudo apt update同步Ubuntu软件源,获取最新包信息。sudo apt install python3 python3-pip完成安装,安装后通过python3 --version和pip3 --version验证版本。sudo apt install build-essential libssl-dev libffi-dev python3-dev。pip是Python官方包管理工具,适用于大多数场景:
pip3 install requests(自动安装最新版本)。==指定版本,如pip3 install numpy==1.21.2(避免版本冲突)。requirements.txt(记录所有依赖及版本),可批量安装:pip3 install -r requirements.txt。对于系统级Python包(如python3-requests),优先使用apt安装:
sudo apt install python3-requests(安装requests库的系统版本)。全局安装依赖易导致版本冲突(如项目A需要Django 3.x,项目B需要Django 4.x),虚拟环境是解决该问题的核心方案:
venv模块,如python3 -m venv myenv(在当前目录生成myenv虚拟环境文件夹)。source myenv/bin/activate,激活后命令行提示符会显示虚拟环境名称(如(myenv)),此时所有pip安装的包均会隔离在虚拟环境中。deactivate即可返回全局环境。安装过程中若出现“依赖冲突”(如Package X requires Y>=1.0 but Z requires Y<1.0),可按以下步骤排查:
pip3 install --use-feature=2020-resolver package_name,提升冲突解决能力。pip check,查看当前环境中是否存在不兼容的包,根据提示卸载冲突包(如pip uninstall conflicting_package)。若安装时报错“缺少xxx库”(如zlib.h not found),需安装对应的系统开发包:
sudo apt install zlib1g-dev;安装mysqlclient时提示缺少MySQL客户端库,执行sudo apt install libmysqlclient-dev。pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name。pip3 install --user package_name),而非使用sudo(防止污染系统环境)。对于复杂项目(如需要管理非Python依赖、生成锁文件),可使用以下工具:
curl -sSL https://install.python-poetry.org | python3 -(安装),poetry init(初始化项目),poetry add package_name(添加依赖)。Pipfile(替代requirements.txt),支持依赖隔离。操作示例:pip3 install pipenv,pipenv install package_name(安装并生成Pipfile)。