Ubuntu上Python依赖处理的完整流程

在安装任何依赖前,先更新Ubuntu的系统包列表,确保获取最新的软件版本信息:
sudo apt updateUbuntu默认可能未安装Python 3或pip(Python包管理工具),需通过以下命令安装:
sudo apt install python3 python3-pip安装完成后,通过python3 --version和pip3 --version验证是否安装成功。
为避免不同项目间的依赖冲突,强烈建议使用虚拟环境。以venv模块为例:
# 创建虚拟环境(如命名为myenv)python3 -m venv myenv# 激活虚拟环境(激活后命令行前会显示环境名)source myenv/bin/activate# 激活后,后续pip安装的包将仅存在于该环境中退出虚拟环境时,运行deactivate即可。
在虚拟环境中,使用pip install命令安装所需包。例如安装requests库:
pip install requests若需安装特定版本(如requests==2.26.0),可在包名后指定版本号。
pip freeze导出当前环境的依赖到requirements.txt文件:pip freeze > requirements.txt文件内容示例:requests==2.26.0numpy==1.21.2pandas==1.3.3requirements.txt中的所有依赖:pip install -r requirements.txt若安装时出现依赖冲突或解析错误,先升级pip和setuptools到最新版本,并启用新的依赖解析器:
pip install --upgrade pip setuptools wheelpip install --use-feature=2020-resolver package_name# 启用新解析器部分Python包需要系统级的库支持(如psycopg2需要PostgreSQL客户端库),需通过apt安装对应系统包。例如:
sudo apt install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev liblzma-dev具体依赖可根据包的官方文档或错误提示查找。
若安装时出现缓存问题,可使用--no-cache-dir选项清除缓存后重新安装:
pip install --no-cache-dir package_namepip-tools提供更严格的依赖锁定功能,适合需要版本严格一致的项目:
# 安装pip-toolspip install pip-tools# 创建依赖清单(requirements.in,列出直接依赖)echo "flask requests" > requirements.in# 生成锁定文件(requirements.txt,包含所有间接依赖及版本)pip-compile requirements.in# 安装锁定文件中的依赖pip-sync requirements.txt若项目涉及数据科学(如NumPy、Pandas),conda能更好地管理Python及非Python依赖(如C库):
# 下载并安装Minicondawget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shbash Miniconda3-latest-Linux-x86_64.sh# 创建conda环境(指定Python版本)conda create -n myenv python=3.9# 激活环境conda activate myenv# 安装依赖(conda会自动处理依赖关系)conda install numpy pandas requestspoetry集成了依赖管理、打包和发布功能,适合复杂项目:
# 安装poetrycurl -sSL https://install.python-poetry.org | python3 -# 初始化项目(生成pyproject.toml配置文件)poetry init# 添加依赖(如numpy)poetry add numpy# 安装所有依赖(包括开发依赖)poetry install通过以上步骤,可有效解决Ubuntu上Python安装后的依赖问题,确保项目依赖的稳定性与可移植性。根据项目需求选择合适的工具(如简单项目用venv+requirements.txt,复杂项目用poetry或conda)。