python pip之python模塊自動化安裝腳本

此腳本集成pip 全部功能,可在遠程環境中執行,爲你解決還在憂愁記住pip命令煩惱,此腳本預留了接口,可根據本身的實際環境自定義開發。
def pip_python_file():
    win = (sys.platform == 'win32')
    linux = (sys.platform == 'linux2')
    if win:
        version = subprocess.Popen('pip -V', stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                                   shell=True).stdout.readlines()
        if len(version) > 0:
            print('********************安裝環境信息********************')
            try:
                print('win_version:')
                print('\t' + u'版本:%s' % platform.platform())
            except Exception:
                print()
            pip_version = subprocess.Popen('pip -V',
                                           stdout=subprocess.PIPE,
                                           stderr=subprocess.PIPE,
                                           shell=True).stdout.readlines()
            python_version = subprocess.Popen('python -V',
                                              stdout=subprocess.PIPE,
                                              stderr=subprocess.PIPE,
                                              shell=True).stdout.readlines()
            python_path = subprocess.Popen('where python',
                                           stdout=subprocess.PIPE,
                                           stderr=subprocess.PIPE,
                                           shell=True).stdout.readlines()
            for python_version1 in python_version:
                print('python_version&path:')
                print('\t' + u'版本:%s' % str(python_version1, encoding="utf8").strip())
            for python_path1 in python_path:
                print('\t' + u'路徑:%s' % str(python_path1, encoding="utf8").strip())
            for pip_version1 in pip_version:
                print('pip_version &path:')
                print('\t' + u'版本:%s' % str(pip_version1, encoding="utf8").strip()[:11])
                print('\t' + u'路徑:%s' % str(pip_version1, encoding="utf8").strip()[16:])

            def menu():
                print("****************Python pip安裝工具 1.0****************")
                print('1.添加py模塊')
                print('2.卸載py模塊')
                print('3.查詢更新py模塊')
                print('4.查詢單個py模塊')
                print('5.查詢全部py模塊')
                print('6.pip使用方法')
                print('7.更新py模塊')
                print('8.退出pip工具')
                print('9.查看本電腦環境變量')

            def input_card():
                """
                1.添加py模塊
                :return:
                """
                try:
                    print('***************添加py模塊***************')
                    out = input('輸入模塊名稱:')
                    add_pip = "pip install"
                    add_pip1 = subprocess.Popen(add_pip + '\t' + out, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                                                shell=True).stdout.readlines()
                    for i in add_pip1:
                        print('\t' + str(i, encoding="utf8").strip())
                except Exception as e:
                    print("錯誤日誌:" + str(e))
                else:
                    print()
                while True:
                    niu = input("請繼續您的選擇是(y/q):").strip()
                    if niu == 'y':
                        return main()
                    elif niu == 'q':
                        exit('/n你已退出程序...')
                    else:
                        print("輸入錯誤,請從新輸入")
                        return main()

            def del_name():
                """
                 2.卸載py模塊
                :param card_list:
                :return:
                """
                try:
                    print('*************** 卸載py模塊***************')
                    out = input('輸入卸載模塊名稱:')
                    add_pip = "pip uninstall"
                    add_pip1 = subprocess.Popen(add_pip + '\t' + out, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                                                shell=True).stdout.readlines()
                    for i in add_pip1:
                        print('\t' + str(i, encoding="utf8").strip())
                except Exception as e:
                    print("錯誤日誌:" + str(e))
                else:
                    print()
                while True:
                    niu = input("請繼續您的選擇是(y/q):").strip()
                    if niu == 'y':
                        return main()
                    elif niu == 'q':
                        exit('/n你已退出程序...')
                    else:
                        print("輸入錯誤,請從新輸入")
                        return main()

            def del_card():
                """
               7.更新py模塊
               :return:
               """
                try:
                    print('***************更新py模塊***************')
                    out = input('輸入須要更新模塊名:')
                    add_pip = "pip install -U"
                    add_pip1 = subprocess.Popen(add_pip + '\t' + out, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                                                shell=True).stdout.readlines()
                    for i in add_pip1:
                        print('\t' + str(i, encoding="utf8").strip())
                except Exception as e:
                    print("錯誤日誌:" + str(e))
                else:
                    print()
                while True:
                    niu = input("請繼續您的選擇是(y/q):").strip()
                    if niu == 'y':
                        return main()
                    elif niu == 'q':
                        exit('/n你已退出程序...')
                    else:
                        print("輸入錯誤,請從新輸入")
                        return main()

            def find_name():
                """
                4.查詢已安裝模塊
                :param card_list:
                :return:
                """
                t = input('輸入查詢模塊名稱:')
                import sys
                def dump(module):
                    print("{0}模塊安裝路徑".format(module))
                    if module in sys.builtin_module_names:  # 查找內建模塊是否存在
                        print("")
                    else:
                        module = __import__(module)  # 非內建模塊輸出模塊路徑
                        print('(非內置模塊已安裝)安裝路徑:%s' % module.__file__)

                dump(t)
                while True:
                    niu = input("請繼續您的選擇是(y/q):").strip()
                    if niu == 'y':
                        return main()
                    elif niu == 'q':
                        exit('/n你已退出程序...')
                    else:
                        print("輸入錯誤,請從新輸入")
                        return main()

            def edit_name():
                """
                3.須要升級模塊
                :param card_list:
                :return:
                """
                update_pip = "pip list --outdated"
                update_pip1 = subprocess.Popen(update_pip, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                                               shell=True).stdout.readlines()
                print(u'須要升級模塊:')
                for i in update_pip1:
                    print('\t' + str(i, encoding="utf8").strip())
                while True:
                    niu = input("請繼續您的選擇是(y/q):").strip()
                    if niu == 'y':
                        return main()
                    elif niu == 'q':
                        exit('/n你已退出程序...')
                    else:
                        print("輸入錯誤,請從新輸入")
                        return main()

            def see_card():
                """
                5.查看全部安裝py模塊
                :param card_list:
                :return:
                """
                cat_pip = "pip list"
                cat_pip1 = subprocess.Popen(cat_pip, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                                            shell=True).stdout.readlines()
                print(u'你已安裝的模塊:')
                for i in cat_pip1:
                    print('\t' + str(i, encoding="utf8").strip())
                while True:
                    niu = input("請繼續您的選擇是(y/q):").strip()
                    if niu == 'y':
                        return main()
                    elif niu == 'q':
                        exit('/n你已退出程序...')
                    else:
                        print("輸入錯誤,請從新輸入")
                        return main()

            def pip_help():
                """
                6.退出系統
                :return:
                """
                sys.exit('感謝使用本工具!!!')

            def sign_out():
                """
                8.pip參數使用方法
                :param card_list:
                :return:
                """
                update_pip = "pip"
                update_pip1 = subprocess.Popen(update_pip, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                                               shell=True).stdout.readlines()
                print(u'pip參數使用方法:')
                for i in update_pip1:
                    print('\t' + str(i, encoding="utf8").strip())
                while True:
                    niu = input("請繼續您的選擇是(y/q):").strip()
                    if niu == 'y':
                        return main()
                    elif niu == 'q':
                        exit('/n你已退出程序...')
                    else:
                        print("輸入錯誤,請從新輸入")
                        return main()

            def pip_path():
                import os
                print(u'本地電腦環境變量:')
                print('\t' + 'PATH=' + os.environ['path'])

            def main():
                menu()
                while True:
                    mun = input('請輸入功能序號:')
                    if mun.isdigit():
                        mun = int(mun)
                    else:
                        print('請輸入正確的功能序號!')
                    if mun == 1:
                        input_card()
                    if mun == 2:
                        del_name()
                    if mun == 3:
                        edit_name()
                    if mun == 4:
                        find_name()
                    if mun == 5:
                        see_card()
                    if mun == 6:
                        sign_out()
                        break
                    if mun == 7:
                        del_card()
                    if mun == 8:
                        pip_help()
                    if mun == 9:
                        pip_path()

            if __name__ == '__main__':
                card_list = []
                main()

        else:
            print('請先安裝pip或配置環境變量')
    else:
        print('請先安裝pip或配置環境變量')
        from bs4 import BeautifulSoup
        text = """
                                                                            pip安裝方法                            """
        soup = BeautifulSoup(text, 'html.parser')
        href = soup.find('a').get('href')
        print('pip安裝方式:', href)
    if linux:
        pass
    else:
        print('請先安裝pip或配置環境變量')
相關文章
相關標籤/搜索