CentOS 中 Python 环境的备份与恢复
一 备份策略与准备
python3 --version、which python3、which pip3pip freeze > requirements.txt(或 pip list --format=freeze > requirements.txt)mkdir -p /backup && pip freeze > /backup/requirements.txtcp -a /path/to/venv /backup/venv_$(date +%F)/usr/bin/python3、/usr/local/bin/pip*、/etc/python* 等(系统级操作务必谨慎,先备份再变更)。二 备份方法
pip freeze > requirements.txtpip download -r requirements.txt -d ./pip_packagescp -a venv venv_backuptar czf python_backup_$(date +%F).tar.gz /usr/local/python3.10 /usr/bin/python3 /etc/python* ...tar xzf python_backup_*.tar.gz -C /pip download -r requirements.txt -d ./pip_packagespip install --no-index --find-links=./pip_packages -r requirements.txt三 恢复方法
python3 -m venv /path/to/venv && source /path/to/venv/bin/activatepip install -r requirements.txtpip install --no-index --find-links=./pip_packages -r requirements.txtcp -a venv_backup /path/to/venvls -l /path/to/venv/bin/python,必要时调整 shebang 或重新创建链接。tar xzf python_backup_*.tar.gz -C /python3,可用 alternatives 或调整 /usr/bin/python3 链接(变更前先备份原链接)。python3 --version、pip3 --version。四 验证与常见故障处理
python3 --version、pip3 --versionpip freeze | sort > current.txt,与备份的 requirements.txt 做 diff。python -c "import sys, pkg_resources; print(sys.version); print(pkg_resources.get_distribution('pip').version)"cp /usr/bin/python /usr/bin/python.bak),恢复时用 mv /usr/bin/python.bak /usr/bin/python 或 alternatives --set python /usr/bin/python3.x 纠正默认版本。requirements.txt 恢复。pip_packages 目录存在且与 requirements.txt 匹配,使用 --no-index --find-links 指定本地目录。五 最佳实践
requirements.txt 纳入版本控制;对大型项目用 pipreqs 生成更精确的最小依赖清单。python3/pip3 --version 与 pip freeze 校验。