pip更新所有的包

windows环境下, pip更新所有的安装包

import pip
from subprocess import call

packages = [dist.project_name for dist in pip.get_installed_distributions()]
call("pip install --upgrade " + ' '.join(packages), shell=True)

但是有些包更新不了, 单独更新时出现错误

Cannot uninstall 'scikit-learn'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

解决方法: 修改命令pip install -U scikit-learnpip install -U --ignore-installed scikit-learn

因此, 更新所有的安装包可修改为

import pip
from subprocess import call

packages = [dist.project_name for dist in pip.get_installed_distributions()]
call("pip install --upgrade --ignore-installed " + ' '.join(packages), shell=True)

如果pip版本过高, 运行会出现错误

AttributeError: module 'pip' has no attribute 'get_installed_distributions'

可以尝试下面这种方法

pip install pip-review
pip-review --local --interactive

其它

更新pip: python -m pip install --upgrade pip

点赞