CentOS Python包管理操作指南

在CentOS上管理Python包,其实并不复杂,但有几个关键点需要先搞清楚。系统默认带了Python 2.7,但说实话,Python 2已经退役了,所以强烈建议直接上Python 3。下面一步步来。
一、基础工具准备
首先得确认系统里有没有Python和对应的包管理工具。CentOS 7及以上版本默认装的是Python 2.7,但我们要用Python 3(比如3.6+),所以需要手动安装:
- 安装Python 3:
sudo yum install python3 - 安装pip(Python包管理器):
- Python 3专用:
sudo yum install python3-pip(推荐); - 如果非要管理Python 2的包(不推荐):
sudo yum install python-pip。
- Python 3专用:
二、pip核心操作(Python 3)
pip是CentOS上最常用的包管理工具,没有之一。下面这些命令基本覆盖了日常需求:
- 安装包:
pip3 install package_name(比如pip3 install requests); - 升级包:
pip3 install --upgrade package_name(比如pip3 install --upgrade requests); - 卸载包:
pip3 uninstall package_name(比如pip3 uninstall requests); - 查看已安装包:
pip3 list(列出所有包和版本); - 查看包详情:
pip3 show package_name(比如pip3 show requests,能看到作者、版本、依赖等信息); - 生成/安装依赖文件:
- 生成
requirements.txt(记录当前环境所有包及版本):pip3 freeze > requirements.txt; - 从文件安装依赖(用于项目部署):
pip3 install -r requirements.txt。
- 生成
三、虚拟环境管理(避免依赖冲突)
不同项目依赖的包版本可能打架,这时候虚拟环境就是救星。最好养成习惯,每个项目都建一个独立环境:
- 安装virtualenv:
sudo pip3 install virtualenv(或者直接用Python 3内置的venv模块,更省事); - 创建虚拟环境:
virtualenv myenv(环境目录名随便起,比如myenv);- 如果想指定Python 3解释器:
virtualenv -p python3 myenv;
- 如果想指定Python 3解释器:
- 激活虚拟环境:
source myenv/bin/activate(激活后命令行前面会显示环境名,一眼就能看出来); - 退出虚拟环境:
deactivate(回到系统默认环境)。
四、其他包管理方式
除了pip,CentOS上还有两个常用的包管理工具,各有各的适用场景:
- yum包管理器:适合安装系统自带的Python包,不过版本通常比较旧。命令格式:
- 安装:
sudo yum install python3-package_name(比如sudo yum install python3-requests); - 卸载:
sudo yum remove python3-package_name; - 列出已安装包:
yum list installed | grep python3; - 搜索包:
yum search python3-package_name。
- 安装:
- conda(Anaconda/Miniconda):数据科学、机器学习场景的主力,能处理复杂依赖和非Python包。操作如下:
- 安装Miniconda:下载官方脚本并运行(
bash Miniconda3-latest-Linux-x86_64.sh); - 创建环境:
conda create --name myenv python=3.8(指定Python版本); - 激活环境:
conda activate myenv; - 安装包:
conda install package_name(比如conda install numpy); - 导出环境:
conda env export > environment.yml(方便分享给其他人); - 从文件创建环境:
conda env create -f environment.yml。
- 安装Miniconda:下载官方脚本并运行(
五、注意事项
- 优先使用pip3:别把Python 2和Python 3的包搞混了,毕竟Python 2已经停止维护(EOL)了;
- 虚拟环境必备:千万不要全局安装项目依赖,不然版本冲突会让你头疼;
- 依赖文件管理:项目完成后及时生成
requirements.txt,团队协作或迁移部署会省很多事。