Ubuntu下Python安装后的管理指南
在Ubuntu系统中,Python安装后的管理主要包括版本控制、包管理、虚拟环境隔离及环境一致性保障四大核心环节,以下是具体操作方法:
Ubuntu默认预装Python 3(如Ubuntu 22.04及以上版本默认安装Python 3.10),可通过以下命令查看当前默认Python 3版本:
python3 --version
update-alternatives切换系统Python版本若系统安装了多个Python 3版本(如3.8、3.10),可通过update-alternatives工具切换默认版本:
update-alternatives:sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1 # 添加Python 3.8
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2 # 添加Python 3.10
sudo update-alternatives --config python3
根据提示输入对应编号即可切换。pyenv管理多版本Python(推荐)pyenv是更灵活的版本管理工具,支持用户级安装和快速切换:
pyenv及依赖:sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libffi-dev
curl https://pyenv.run | bash
~/.bashrc(或~/.zshrc):export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"
运行source ~/.bashrc使配置生效。pyenv安装/切换版本:
pyenv install 3.9.12(需提前通过pyenv install --list查看可用版本);pyenv global 3.9.12;pyenv local 3.8.10;pyenv versions。pip管理第三方包pip是Python官方包管理工具,需先确保其已安装:
sudo apt install python3-pip # 安装pip
pip3 install --upgrade pip # 升级pip至最新版
pip3 install 包名 # 安装指定包(如pip3 install requests)
pip3 uninstall 包名 # 卸载指定包
pip3 list # 列出所有已安装包及版本
pip3 show 包名 # 查看指定包的详细信息(如版本、依赖)
requirements.txt:pip3 freeze > requirements.txt;requirements.txt安装所有依赖:pip3 install -r requirements.txt(常用于项目迁移或团队协作)。apt安装Python包对于与系统集成的基础包(如python3-numpy),可通过apt安装:
sudo apt update
sudo apt install python3-包名 # 如sudo apt install python3-numpy
注意:apt安装的包版本较旧,建议优先使用pip安装最新版第三方包。
虚拟环境是避免不同项目间包版本冲突的关键工具,常用venv(Python内置)或virtualenv(第三方):
python3 -m venv myenv # 使用venv创建名为myenv的虚拟环境
source myenv/bin/activate # 激活虚拟环境(终端提示符会显示环境名)
deactivate # 退出虚拟环境
pip install 包名安装的包仅存在于该环境中,不会影响系统Python。对于团队协作或生产部署,可使用Docker容器封装Python环境,确保开发、测试、生产环境一致:
docker run -it --rm python:3.9 bash # 运行Python 3.9容器
或基于现有项目目录创建镜像:编写Dockerfile(含FROM python:3.9、COPY . /app、WORKDIR /app、RUN pip install -r requirements.txt等指令),再通过docker build构建镜像。