本文目录导读:

方案1:基础清理脚本(适用于Linux/Mac)
#!/bin/bash # 文件名:clean_pip_cache.sh echo "开始清理pip缓存..." # 清理pip缓存 pip cache purge # 清理wheel缓存 pip install --no-cache-dir -U pip # 显示清理后的缓存大小 echo "当前pip缓存大小:" pip cache info echo "清理完成!"
方案2:更全面的清理脚本(多平台支持)
#!/bin/bash
# 文件名:clean_pip_cache_complete.sh
echo "====== pip缓存清理工具 ======"
# 获取当前平台
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
echo "检测到Linux系统"
CACHE_DIR="$HOME/.cache/pip"
elif [[ "$OSTYPE" == "darwin"* ]]; then
echo "检测到macOS系统"
CACHE_DIR="$HOME/Library/Caches/pip"
elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]]; then
echo "检测到Windows系统"
CACHE_DIR="$USERPROFILE/pip/cache"
else
echo "未知系统类型,使用默认路径"
CACHE_DIR="$HOME/.cache/pip"
fi
# 显示当前缓存状态
echo "缓存目录: $CACHE_DIR"
echo "当前缓存大小:"
du -sh "$CACHE_DIR" 2>/dev/null || echo "无法获取缓存大小"
# 清理pip缓存
echo ""
echo "正在清理pip缓存..."
pip cache purge
# 清理wheelhouse缓存(如果存在)
WHEELHOUSE_DIR="$HOME/.wheelhouse"
if [ -d "$WHEELHOUSE_DIR" ]; then
echo "清理wheelhouse缓存..."
rm -rf "$WHEELHOUSE_DIR"
fi
# 清理临时文件
echo "清理临时文件..."
pip install --no-cache-dir -U pip 2>/dev/null
# 显示清理后的状态
echo ""
echo "清理完成!"
echo "新的缓存大小:"
pip cache info
# 可选:显示保存空间
OLD_SIZE=$(du -sh "$CACHE_DIR" 2>/dev/null | cut -f1)
echo "已清理缓存,节省了 $OLD_SIZE 空间" || echo "未知清理大小"
方案3:Python脚本(跨平台兼容性更好)
#!/usr/bin/env python3
# 文件名:clean_pip_cache.py
import os
import shutil
import subprocess
import platform
import sys
def get_pip_cache_dir():
"""获取pip缓存目录"""
system = platform.system().lower()
if system == "windows":
# Windows通常使用 %APPDATA%
return os.path.expandvars(r"%APPDATA%\pip\cache")
elif system == "darwin": # macOS
return os.path.join(os.path.expanduser("~"), "Library", "Caches", "pip")
else: # Linux and others
return os.path.join(os.path.expanduser("~"), ".cache", "pip")
def get_cache_size(path):
"""获取缓存目录大小"""
try:
total = 0
if os.path.exists(path):
for root, dirs, files in os.walk(path):
for f in files:
fp = os.path.join(root, f)
try:
total += os.path.getsize(fp)
except OSError:
pass
return total
except Exception as e:
print(f"无法计算缓存大小: {e}")
return 0
def format_size(bytes_size):
"""格式化文件大小"""
for unit in ['B', 'KB', 'MB', 'GB']:
if bytes_size < 1024:
return f"{bytes_size:.2f} {unit}"
bytes_size /= 1024
return f"{bytes_size:.2f} TB"
def clean_pip_cache():
"""清理pip缓存"""
print("====== pip缓存清理工具 ======")
cache_dir = get_pip_cache_dir()
print(f"检测到缓存目录: {cache_dir}")
# 获取清理前的缓存大小
old_size = get_cache_size(cache_dir)
print(f"当前缓存大小: {format_size(old_size)}")
# 方法1:使用pip命令清理
print("\n正在使用pip命令清理...")
try:
result = subprocess.run(
[sys.executable, "-m", "pip", "cache", "purge"],
capture_output=True,
text=True,
timeout=30
)
if result.returncode == 0:
print("pip cache purge执行成功")
if result.stdout:
print(result.stdout)
else:
print(f"pip命令执行失败: {result.stderr}")
except subprocess.TimeoutExpired:
print("命令执行超时")
except Exception as e:
print(f"执行pip命令出错: {e}")
# 方法2:手动删除缓存目录
print("\n正在手动清理缓存目录...")
if os.path.exists(cache_dir):
try:
shutil.rmtree(cache_dir)
print(f"成功删除缓存目录: {cache_dir}")
except PermissionError:
print(f"权限不足,无法删除: {cache_dir}")
print("尝试只清空目录内容...")
for item in os.listdir(cache_dir):
item_path = os.path.join(cache_dir, item)
try:
if os.path.isfile(item_path):
os.remove(item_path)
elif os.path.isdir(item_path):
shutil.rmtree(item_path)
print(f" 已删除: {item}")
except Exception as e:
print(f" 无法删除 {item}: {e}")
else:
print("缓存目录不存在,无需清理")
# 计算清理后的缓存大小
new_size = get_cache_size(cache_dir)
saved_space = old_size - new_size
print(f"\n====== 清理完成 ======")
print(f"原始缓存大小: {format_size(old_size)}")
print(f"当前缓存大小: {format_size(new_size)}")
print(f"节省空间: {format_size(saved_space)}")
if __name__ == "__main__":
clean_pip_cache()
方案4:增量清理脚本(保留最近使用的包)
#!/bin/bash # 文件名:clean_pip_cache_incremental.sh echo "增量清理pip缓存(保留最近使用过的包)..." # 清理超过30天未使用的缓存 find "$HOME/.cache/pip" -type f -atime +30 -delete 2>/dev/null # 清理空的目录 find "$HOME/.cache/pip" -type d -empty -delete 2>/dev/null echo "清理完成!保留最近30天内使用的缓存。" pip cache info
使用说明
-
赋予执行权限(Linux/Mac):
chmod +x clean_pip_cache.sh
-
运行脚本:
# Bash脚本 ./clean_pip_cache.sh # Python脚本 python3 clean_pip_cache.py
-
设置定时任务(可选,Linux/Mac):
# 每月自动清理 crontab -e # 添加以下行(每月1号凌晨2点执行) 0 2 1 * * /path/to/clean_pip_cache.sh
注意事项
- 备份重要数据:清理前建议确认没有正在使用的包
- 权限问题:Windows可能需要管理员权限
- 虚拟环境:如果使用virtualenv或conda,清理的是全局缓存
- 生产环境:建议在非工作时间执行清理
选择最适合你平台的脚本执行即可。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播