pip一次性安装很多库

"""
    pip一次性安装很多库

    1、问题描述:有时候我们想要安装许多python库来进行work,但一条条安装过于麻烦,所以想一次性安装所需的所有库。

    2、问题解决:首先将自己所需的库放在一个requirement.txt文件中,然后通过参数-r来安装文件里所列出的所有库。示例如下:

    pip install -r requirement.txt

    1、   如果安装的比较慢,可以换安装源,需要参数-i,示例如下:

    pip install -i https://pypi.douban.com/simple -r requirement.txt
        or
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirement.txt
        or
    pip install -i https://mirrors.aliyun.com/pypi/simple -r requirement.txt

    requirement.txt

    asyncio
    bs4
    beautifulsoup4
    docopt
    docx
    django
    flask
    werobot
    wheel
    requests
    lxml
    xlwt
    numpy
    networkx
    sklearn
    Scikit-Learn
    TensorFlow
    Keras
    Scapy
    scrapy
    SciPy
    selenium
    sympy
    matplotlib
    multiprocessing
    threading
    jieba
    jsonpath
    pandas
    Pillow
    playwright
    pdfplumber
    pypdf2
    pyautogui
    pyperclip
    Pyglet
    pymysql
    pyqt5
    pywifi
    pyopengl
    pygame
    pyinstaller
    pymongo

"""

import os
import threading


def auto_install_idle():
    '''
    print()输出内容   为默认颜色
    :return:
    '''
    libs = ['requests', 'asyncio', 'bs4', 'beautifulsoup4', 'docopt', 'docx', 'django', 'flask', 'werobot', 'wheel',
            'lxml', 'xlwt',
            'numpy', 'networkx', 'sklearn', 'Scikit-Learn', 'Keras', 'Scapy', 'scrapy', 'SciPy',
            'selenium', 'sympy', 'matplotlib', 'multiprocessing', 'threading', 'jieba', 'jsonpath', 'pandas', 'Pillow',
            'playwright', 'pdfplumber',
            'pypdf2', 'pyautogui', 'pyperclip', 'Pyglet', 'pymysql', 'pyqt5', 'pywifi', 'pyopengl', 'pygame',
            'pyinstaller', 'pymongo', 'uvloop', 'aioredis', 'aiomysql', 'aiohttp', 'TensorFlow', 'openpyxl', 'PyExecJS'
            , 'itchat']
    # 计数器
    num = 0
    # 需要安装的库的数量
    a = len(libs)
    # 统计出错次数
    c = 0
    for lib in libs:
        # 已执行数量
        num += 1
        # 剩余未执行数量
        b = a - num

        try:
            print('当前安装第 ', num, ' 个库,剩余:', b, ' 个库正在等待安装....')
            print('开始安装: ', lib)
            print("执行命令:  pip install -i https://pypi.tuna.tsinghua.edu.cn/simple " + lib)
            os.system('pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ')
            print(lib + ':' + '  installed successful 已安装成功!')
        except:
            # 出错次数累计
            c += 1
            print(lib + '  installed failed      安装失败!')

    print(libs, '\n', "已成功安装", num, "个库!", c, "个异常!   \n程序退出!")


def thread_pip(pip_name):
    os.system('pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ' + pip_name)
    print('pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ' + pip_name)


def auto_install_pycharm():
    '''
    改变 print() 输出内容的颜色
    :return:
    '''
    # print 字体紫色
    color_a = "\033[1;35m"
    color_b = '\033[0m'
    # color_a +
    # + color_b

    libs = ['requests', 'asyncio', 'bs4', 'beautifulsoup4', 'docopt', 'docx', 'django', 'flask', 'werobot', 'wheel',
            'lxml', 'xlwt',
            'numpy', 'networkx', 'sklearn', 'Scikit-Learn', 'Keras', 'Scapy', 'scrapy', 'SciPy',
            'selenium', 'sympy', 'matplotlib', 'multiprocessing', 'threading', 'jieba', 'jsonpath', 'pandas', 'Pillow',
            'playwright', 'pdfplumber',
            'pypdf2', 'pyautogui', 'pyperclip', 'Pyglet', 'pymysql', 'pyqt5', 'pywifi', 'pyopengl', 'pygame',
            'pyinstaller', 'pymongo', 'uvloop', 'aioredis', 'aiomysql', 'aiohttp', 'TensorFlow', 'openpyxl', 'PyExecJS']
    # 计数器
    num = 0
    # 需要安装的库的数量
    a = len(libs)
    # 统计出错次数
    c = 0
    for lib in libs:
        # 已执行数量
        num += 1
        # 剩余未执行数量
        b = a - num

        try:
            print(color_a + '当前安装第 ', num, ' 个库,剩余:', b, ' 个库正在等待安装....' + color_b)
            print(color_a + '开始安装: ', lib + color_b)
            print(color_a + "执行命令:  pip install -i https://pypi.tuna.tsinghua.edu.cn/simple " + lib + color_b)
            os.system('pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ' + lib)
            print(color_a + lib + ':' + '  installed successful 已安装成功!' + color_b)
        except:
            # 出错次数累计
            c += 1
            print("\033[1;31m" + lib + '  installed failed      安装失败!' + color_b)

    print(color_a + str(libs), '\n', "已成功安装", num, "个库!", c, "个异常!   \n程序退出!" + color_b)


if __name__ == '__main__':
    auto_install_pycharm()
    # auto_install_idle()
    # libs = [
    #     'pyquery', 'asyncio', 'python-utils', 'aiohttp', 'aiofiles',
    #     'aiomysql', 'aioredis', 'requests', 'bs4',
    #     'beautifulsoup4', 'docopt',
    #     'docx', 'django', 'flask', 'werobot', 'wheel',
    #     'lxml', 'xlwt',
    #     'numpy', 'networkx', 'sklearn', 'Scikit-Learn', 'Keras', 'Scapy', 'scrapy', 'SciPy',
    #     'selenium', 'sympy', 'matplotlib', 'multiprocessing', 'threading', 'jieba',
    #     'jsonpath', 'pandas', 'Pillow',
    #     'playwright', 'pdfplumber',
    #     'pypdf2', 'pyautogui', 'pyperclip', 'Pyglet', 'pymysql', 'pyqt5',
    #     'pywifi', 'pyopengl', 'pygame',
    #     'pyinstaller', 'pymongo', 'uvloop', 'TensorFlow', 'execjs'
    # ]
    #
    # threads = []
    # for i in libs:  # 循环创建多个个线程
    #     t = threading.Thread(target=thread_pip, args=(i,))
    #     threads.append(t)
    #     t.setDaemon(True)  # 给每个子线程添加守护线程
    # for t in threads:  # 循环启动创建的线程
    #     t.start()
    # for t in threads:
    #     t.join(5)  # 设置子线程超时2秒
    #
    # print("thread end")

posted @ 2023-02-23 23:50  Victor's  阅读(712)  评论(0)    收藏  举报
友链: 嘿嘿嘿...

   本站总访问量: