Ubuntu下Python包管理指南
在Ubuntu系统中,Python包管理可通过系统级包管理器(apt)、Python官方工具(pip)及虚拟环境配合实现,以下是具体操作流程及注意事项:
apt管理系统级Python包apt是Ubuntu默认的系统包管理器,主要用于安装Ubuntu软件库中的Python包(多为稳定版本)。
sudo apt update(同步软件库最新信息);sudo apt install python3-包名(如sudo apt install python3-requests安装requests库);sudo apt remove python3-包名(如sudo apt remove python3-requests);dpkg -l | grep python3-(过滤出所有python3-开头的已安装包)。apt提供的包版本通常较旧,且仅包含Ubuntu支持的库。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(第三方工具):
venv(Python 3.3+内置)python3 -m venv myenv(myenv为环境目录名);source myenv/bin/activate(激活后,终端提示符会显示环境名);deactivate(退出当前虚拟环境)。pip安装的包会存放在虚拟环境中,不影响全局Python环境。virtualenv(第三方工具,支持Python 2/3)virtualenv:sudo apt install python3-virtualenv;venv一致(virtualenv myenv、source myenv/bin/activate、deactivate)。为便于项目部署和协作,建议使用依赖文件记录项目所需的包及版本:
requirements.txt(基础依赖管理)pip3 freeze > requirements.txt(将当前虚拟环境中的所有包及版本写入文件);pip3 install -r requirements.txt(根据文件安装所有依赖,常用于项目克隆后的环境复现)。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。若使用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.cn
可显著提升pip下载速度。