阅读量:26
Ubuntu下Python包管理指南
在Ubuntu系统中,Python包管理可通过系统级包管理器(apt)、Python官方工具(pip)及虚拟环境配合实现,以下是具体操作流程及注意事项:
一、基础包管理工具
1. 使用apt管理系统级Python包
apt是Ubuntu默认的系统包管理器,主要用于安装Ubuntu软件库中的Python包(多为稳定版本)。
- 更新包列表:
sudo apt update(同步软件库最新信息); - 安装Python包:
sudo apt install python3-包名(如sudo apt install python3-requests安装requests库); - 卸载Python包:
sudo apt remove python3-包名(如sudo apt remove python3-requests); - 查看已安装包:
dpkg -l | grep python3-(过滤出所有python3-开头的已安装包)。
注意:apt提供的包版本通常较旧,且仅包含Ubuntu支持的库。
2. 使用pip管理第三方Python包
pip是Python官方包管理工具,可从PyPI(Python Package Index)安装最新版本的第三方库。
- 安装/升级
pip:sudo apt install python3-pip(安装pip);pip3 install --upgrade pip(升级至最新版); - 安装包:
pip3 install 包名(如pip3 install requests);若需指定版本,用pip3 install 包名==版本号(如pip3 install requests==2.25.1); - 卸载包:
pip3 uninstall 包名(如pip3 uninstall requests); - 查看已安装包:
pip3 list(列出所有已安装的包及版本);pip3 show 包名(查看包的详细信息,如作者、依赖等); - 升级所有过时包:
pip3 list --outdated --format freeze | grep -v '\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U(自动检测并升级所有过时包)。
二、虚拟环境:隔离项目依赖
为避免不同项目间的依赖冲突,推荐使用虚拟环境隔离全局包。Ubuntu下常用venv(Python内置)或virtualenv(第三方工具):
1. 使用venv(Python 3.3+内置)
- 创建虚拟环境:
python3 -m venv myenv(myenv为环境目录名); - 激活环境:
source myenv/bin/activate(激活后,终端提示符会显示环境名); - 退出环境:
deactivate(退出当前虚拟环境)。
激活后,pip安装的包会存放在虚拟环境中,不影响全局Python环境。
2. 使用virtualenv(第三方工具,支持Python 2/3)
- 安装
virtualenv:sudo apt install python3-virtualenv; - 创建/激活/退出:命令与
venv一致(virtualenv myenv、source myenv/bin/activate、deactivate)。
三、依赖文件:规范项目依赖
为便于项目部署和协作,建议使用依赖文件记录项目所需的包及版本:
1. requirements.txt(基础依赖管理)
- 生成文件:
pip3 freeze > requirements.txt(将当前虚拟环境中的所有包及版本写入文件); - 安装依赖:
pip3 install -r requirements.txt(根据文件安装所有依赖,常用于项目克隆后的环境复现)。
2. 高级工具:pipenv/poetry(整合依赖管理与虚拟环境)
pipenv:结合pip与virtualenv,提供更严格的依赖解析;- 安装:
pip3 install pipenv; - 创建环境并安装依赖:
pipenv install(无参数则安装Pipfile中的依赖); - 添加包:
pipenv install 包名(自动更新Pipfile和Pipfile.lock); - 激活环境:
pipenv shell; - 退出环境:
exit。
- 安装:
poetry:现代包管理工具,支持依赖管理、打包、发布一体化;- 安装:
curl -sSL https://install.python-poetry.org | python3 -; - 初始化项目:
poetry init(交互式创建pyproject.toml文件); - 添加依赖:
poetry add 包名(自动更新pyproject.toml和poetry.lock); - 安装依赖:
poetry install; - 激活环境:
poetry shell。
- 安装:
四、可选:conda(适合数据科学项目)
若使用Anaconda/Miniconda,conda可管理Python包及环境,尤其适合数据科学项目(如NumPy、Pandas等依赖复杂库的场景):
- 创建环境:
conda create --name myenv python=3.x(myenv为环境名,3.x为Python版本); - 激活环境:
conda activate myenv; - 安装包:
conda install 包名(优先从conda仓库安装,也可通过conda install -c conda-forge 包名从conda-forge安装); - 导出环境:
conda env export > environment.yml(保存环境配置,便于他人复现); - 从文件创建环境:
conda env create -f environment.yml。
五、注意事项
- 优先使用虚拟环境:避免全局安装导致依赖冲突;
- 区分
apt与pip:apt用于系统级包(如python3-tk),pip用于第三方库(如requests); - 使用国内镜像源加速:编辑
~/.pip/pip.conf,添加以下内容(以清华大学镜像为例):可显著提升[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple trusted-host = pypi.tuna.tsinghua.edu.cnpip下载速度。