up_pip.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from subprocess import getstatusoutput
  2. from tkinter.messagebox import showinfo
  3. g = getstatusoutput('pip list --outdated -i https://pypi.tuna.tsinghua.edu.cn/simple') # 更改为清华大学的源
  4. if g[0] != 0:
  5. print('获取更新列表失败,请重新运行!')
  6. exit(0)
  7. else:
  8. if len(g[1]) == 0:
  9. print('所有的库都是最新的,无需更新。')
  10. exit(0)
  11. else:
  12. print('过期的库有:\n', g[1])
  13. past_list = []
  14. g_list = g[1].split('\n')
  15. #print(g_list)
  16. for i in g_list[2:]:
  17. past_list.append(i.split(' ')[0])
  18. # print(past_list)
  19. fail_list = []
  20. for i in past_list:
  21. try:
  22. print(f'开始更新库:{i}……')
  23. update = getstatusoutput(f'pip install --upgrade {i} -i https://pypi.tuna.tsinghua.edu.cn/simple')
  24. if update[0] == 0:
  25. print(f'{i}:已更新完成。')
  26. else:
  27. print(f'{i}:更新失败!')
  28. fail_list.append(i)
  29. except Exception:
  30. pass
  31. if len(fail_list) == 0:
  32. print('所有库已全部更新')
  33. else:
  34. print('以下库更新失败,请重新运行程序,或手动更新。\n', fail_list)
  35. showinfo('结果',"已完成所有库的自检更新")