python pip之python模块自动化安装脚本
此脚本集成pip所有功能,可在远程环境中执行,为你解决还在忧愁记住pip命令烦恼,此脚本预留了接口,可根据自己的实际环境自定义开发。 defpip_python_file(): win=(sys.platform=='win32') linux=(sys.platform=='linux2') ifwin: version=subprocess.Popen('pip-V',stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=True).stdout.readlines() iflen(version)>0: print('********************安装环境信息********************') try: print('win_version:') print('\t'+u'版本:%s'%platform.platform()) exceptException: 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('wherepython', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).stdout.readlines() forpython_version1inpython_version: print('python_version&path:') print('\t'+u'版本:%s'%str(python_version1,encoding="utf8").strip()) forpython_path1inpython_path: print('\t'+u'路径:%s'%str(python_path1,encoding="utf8").strip()) forpip_version1inpip_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:]) defmenu(): print("****************Pythonpip安装工具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.查看本电脑环境变量') definput_card(): """ 1.添加py模块 :return: """ try: print('***************添加py模块***************') out=input('输入模块名称:') add_pip="pipinstall" add_pip1=subprocess.Popen(add_pip+'\t'+out,stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=True).stdout.readlines() foriinadd_pip1: print('\t'+str(i,encoding="utf8").strip()) exceptExceptionase: print("错误日志:"+str(e)) else: print() whileTrue: niu=input("请继续您的选择是(y/q):").strip() ifniu=='y': returnmain() elifniu=='q': exit('/n你已退出程序...') else: print("输入错误,请重新输入") returnmain() defdel_name(): """ 2.卸载py模块 :paramcard_list: :return: """ try: print('***************卸载py模块***************') out=input('输入卸载模块名称:') add_pip="pipuninstall" add_pip1=subprocess.Popen(add_pip+'\t'+out,stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=True).stdout.readlines() foriinadd_pip1: print('\t'+str(i,encoding="utf8").strip()) exceptExceptionase: print("错误日志:"+str(e)) else: print() whileTrue: niu=input("请继续您的选择是(y/q):").strip() ifniu=='y': returnmain() elifniu=='q': exit('/n你已退出程序...') else: print("输入错误,请重新输入") returnmain() defdel_card(): """ 7.更新py模块 :return: """ try: print('***************更新py模块***************') out=input('输入需要更新模块名:') add_pip="pipinstall-U" add_pip1=subprocess.Popen(add_pip+'\t'+out,stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=True).stdout.readlines() foriinadd_pip1: print('\t'+str(i,encoding="utf8").strip()) exceptExceptionase: print("错误日志:"+str(e)) else: print() whileTrue: niu=input("请继续您的选择是(y/q):").strip() ifniu=='y': returnmain() elifniu=='q': exit('/n你已退出程序...') else: print("输入错误,请重新输入") returnmain() deffind_name(): """ 4.查询已安装模块 :paramcard_list: :return: """ t=input('输入查询模块名称:') importsys defdump(module): print("{0}模块安装路径".format(module)) ifmoduleinsys.builtin_module_names:#查找内建模块是否存在 print("") else: module=__import__(module)#非内建模块输出模块路径 print('(非内置模块已安装)安装路径:%s'%module.__file__) dump(t) whileTrue: niu=input("请继续您的选择是(y/q):").strip() ifniu=='y': returnmain() elifniu=='q': exit('/n你已退出程序...') else: print("输入错误,请重新输入") returnmain() defedit_name(): """ 3.需要升级模块 :paramcard_list: :return: """ update_pip="piplist--outdated" update_pip1=subprocess.Popen(update_pip,stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=True).stdout.readlines() print(u'需要升级模块:') foriinupdate_pip1: print('\t'+str(i,encoding="utf8").strip()) whileTrue: niu=input("请继续您的选择是(y/q):").strip() ifniu=='y': returnmain() elifniu=='q': exit('/n你已退出程序...') else: print("输入错误,请重新输入") returnmain() defsee_card(): """ 5.查看所有安装py模块 :paramcard_list: :return: """ cat_pip="piplist" cat_pip1=subprocess.Popen(cat_pip,stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=True).stdout.readlines() print(u'你已安装的模块:') foriincat_pip1: print('\t'+str(i,encoding="utf8").strip()) whileTrue: niu=input("请继续您的选择是(y/q):").strip() ifniu=='y': returnmain() elifniu=='q': exit('/n你已退出程序...') else: print("输入错误,请重新输入") returnmain() defpip_help(): """ 6.退出系统 :return: """ sys.exit('感谢使用本工具!!!') defsign_out(): """ 8.pip参数使用方法 :paramcard_list: :return: """ update_pip="pip" update_pip1=subprocess.Popen(update_pip,stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=True).stdout.readlines() print(u'pip参数使用方法:') foriinupdate_pip1: print('\t'+str(i,encoding="utf8").strip()) whileTrue: niu=input("请继续您的选择是(y/q):").strip() ifniu=='y': returnmain() elifniu=='q': exit('/n你已退出程序...') else: print("输入错误,请重新输入") returnmain() defpip_path(): importos print(u'本地电脑环境变量:') print('\t'+'PATH='+os.environ['path']) defmain(): menu() whileTrue: mun=input('请输入功能序号:') ifmun.isdigit(): mun=int(mun) else: print('请输入正确的功能序号!') ifmun==1: input_card() ifmun==2: del_name() ifmun==3: edit_name() ifmun==4: find_name() ifmun==5: see_card() ifmun==6: sign_out() break ifmun==7: del_card() ifmun==8: pip_help() ifmun==9: pip_path() if__name__=='__main__': card_list=[] main() else: print('请先安装pip或配置环境变量') else: print('请先安装pip或配置环境变量') frombs4importBeautifulSoup text=""" pip安装方法""" soup=BeautifulSoup(text,'html.parser') href=soup.find('a').get('href') print('pip安装方式:',href) iflinux: pass else: print('请先安装pip或配置环境变量')