批量更新python已安装的第三方库与批量安装需要的第三方库

文章目录

    • 前言
    • 方法一:使用 pip freeze
    • 方法二:代码中调用 pip 的方法
    • 批量安装库的代码
    • 感谢

前言

我们都知道升级某个库(假设为 xxx),可以用pip install --upgrade xxx 命令,
如果有多个库,可以依次写在 xxx 后面,以空格间隔。那么,如何简单优雅地批量更新系统中全部已安装的库呢?
这是window系统的,抱歉我的电脑是window系统,其他电脑系统的我还不熟悉,请多多包涵。

方法一:使用 pip freeze

win+r 然后输入cmd回车在命令窗口输入下面的指令:

pip freeze > requirements.txt

批量更新python已安装的第三方库与批量安装需要的第三方库_第1张图片
##用Everything搜索requirements.txt:

批量更新python已安装的第三方库与批量安装需要的第三方库_第2张图片
双击最新日期的requirements.txt文件:
批量更新python已安装的第三方库与批量安装需要的第三方库_第3张图片
然后编辑->替换
在查找内容输入==
在替换为输入>=

批量更新python已安装的第三方库与批量安装需要的第三方库_第4张图片
##修改文件后在命令窗口继续输入下面的命令:

pip install -r requirements.txt --upgrade

接下的运行结果我就不截图
下面是cmd运行之后的结果:
Installing collected packages: [库名]
Attempting uninstall:[库名]
Found existing installation: [库名] 版本
Uninstalling [库名]-版本:
Successfully uninstalled [库名]-版本
Successfully installed [库名]-最新版本

此方法比较适合于带有依赖文件的具体项目,可以针对该项目来升级所需的库。

方法二:代码中调用 pip 的方法

早期的 pip 库(<10.0.1)提供了 get_installed_distributions() 方法查询已安装的库,可以在代码中使用:

# 只在早期 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)

在较新版本中,此方法已被废弃,同样的功能要这样写:

# 较新的 pip 版本。但不建议使用
from subprocess import call
from pip._internal.utils.misc import get_installed_distributions

for dist in get_installed_distributions():
    call("pip install --upgrade " + dist.project_name, shell=True)

注意:“_internal”带前缀下划线,表明它并不希望被导出使用。

批量安装库的代码

"""如果引用的库未安装,则自动安装""" 
#为了明确异常信息,我们追加断言
try:
    import requests
    import pandas as pd
    from bs4 import BeautifulSoup
    import jieba
    import jieba.analyse
    import matplotlib.pyplot as plt
    from wordcloud import WordCloud,STOPWORDS
    import numpy as np
    from PIL import Image
# 使用pip.main()方法进行依赖库的安装(例举几个常用的库)   
except  ImportError:
    import pip
    pip.main(["install", "--user", "requests","beautifulsoup4","matplotlib","wordcloud","pandas","pillow"])
    import requests
    import pandas as pd
    from bs4 import BeautifulSoup
    import jieba
    import jieba.analyse
    import matplotlib.pyplot as plt
    from wordcloud import WordCloud,STOPWORDS
    import numpy as np    
    from PIL import Image 

感谢

希望大家多多包涵,这是我写的第一篇csdn文章,有些格式错误望指出,谢谢大家的支持!!!

你可能感兴趣的:(python,pycharm)