首页 > 编程语言 >【Python】 使用__init__.py 自动安装import失败的三方库

【Python】 使用__init__.py 自动安装import失败的三方库

时间:2023-02-08 15:00:08浏览次数:48  
标签:__ java Python py pip print import os 对应

__init__.py文件

方法一:遍历列表

# coding:utf-8
import os, sys
# 三方库 如果引用的库未安装,则自动安装 try: # import Matplotlib # 绘制折线图、函数图、柱状图、饼图等多种图形 import xlwt # 新建xls import xlrd # 读取xls from xlutils.copy import * # 修改xlsexcept ImportError as ime: # posix:对应 linux,nt:对应 windows,java:对应 java 虚拟机 if os.name == 'posix': # posix:对应 linux print("导入模块失败,失败原因:{}".format(ime)) elif os.name == 'java': # java:对应 java 虚拟机 print("导入模块失败,失败原因:{}".format(ime)) elif os.name == 'nt': # nt:对应 windows # 方法一: uselibs = ['xlwt', 'xlrd==1.2.0', 'xlutils'] try: for lib in uselibs: os.system("pip install " + lib) print("\033[1;34m pip安装 {} 成功/已存在 \033[0m".format(lib)) print("\033[1;34m \n全部安装成功,暂停10s执行后续内容 \033[0m") time.sleep(10) except Exception as e: print("\033[1;34m 未全部安装成功,退出程序,异常原因:{} \033[0m".format(e)) sys.exit()

 

 

方法二:pip.main()

# coding:utf-8
import os,sys, pip

# 三方库 如果引用的库未安装,则自动安装
try:
    import xlwt     # 新建xls
    import xlrd     # 读取xls
    from xlutils.copy import *  # 修改xls

except ImportError as ime:
    # posix:对应 linux,nt:对应 windows,java:对应 java 虚拟机
    if os.name == 'posix':      # posix:对应 linux
        print("导入模块失败,失败原因:{}".format(ime))
    elif os.name == 'java':     # java:对应 java 虚拟机
        print("导入模块失败,失败原因:{}".format(ime))
    elif os.name == 'nt':  # nt:对应 windows
        # 方法1:使用pip.main()方法进行依赖库的安装(例举几个常用的库)
        # print("导入模块异常,尝试pip安装导入模块后重新导入")
        pip.main(["install",  "--user", 'xlwt', "xlutils", "xlrd==1.2.0"])
        # 获取执行文件路径及名称
        exec_file = os.path.join(os.getcwd(), os.path.basename(sys.argv[0]).upper())
        os.system("python " + exec_file)

 

标签:__,java,Python,py,pip,print,import,os,对应
From: https://www.cnblogs.com/phoenixy/p/17101720.html

相关文章

  • 查找a文件中不包含b文件的内容
    !/bin/bashcpremaining_for_clearing.manifest_bakremaining_for_clearing.manifestcats2l2-standalone.manifest|awk-F"|"'{print$1"|"$2}'>S2L2.txtca......
  • flutter:适配屏幕(flutter_screenutil: ^5.6.1 / flutter 3.7.0 )
    一,flutter_screenutil库的地址:https://pub.dev/packages/flutter_screenutil代码地址:https://github.com/OpenFlutter/flutter_screenutil说明:刘宏缔的架构森......
  • 二、SpringMVC的简介
    SpringMVC概述SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFrameWork的后续产品,已经融合在SpringWebFlow中。SpringM......
  • java使用POI导出Excel设置单元格格式为数值类型
    最近做项目遇到的坑,百度了半天导出都为货币类型、自定义类型和常规类型,,,最后终于解决,在此记录一下其中contextstyle.setDataFormat(df.getFormat("0_"));要特别注意"0_",......
  • 20230111_每日学习记录
    20230111今天发现下载smpdb的数据有点问题,没有下载完全并且感觉自己的思路错了.可能还是需要去做更多的事情来可视化.比如解析SBGN或者SBML.想尝试一下自己改动一下PC......
  • centos7升级git
    移除旧版本sudoyumremovegitsudoyumremovegit-*添加EndPointPackageRepository在 CentOS7 上安装新版本 Git 最快的方法是通过 EndPoint 库。s......
  • 浏览器安全相关的攻击与防护
    一、什么是XSS攻击;   CSS攻击是一种代码注入攻击;在网站恶意注入脚本;在用户浏览器上获取用户的信息;   XSS攻击能搞起来的原因是;网站没有针对代码进行过滤;......
  • 20230202_每日学习记录
    20230202HTML文件和bs4使用HTML有下面几部分:便签(tag):soup=BeautifulSoup('<bclass="boldest">Extremelybold</b>','html.parser')<!--这就是b标签......
  • 【01】搭建spring boot单体服务,集成undertow容器
    1.本次学习目标-搭建一个springboot框架服务-集成异步servlet容器undertow-通过AOP的方式实现日志的拦截 2.学习步骤2.1搭建服务框架首先通过https://start.spr......
  • ChatGPT保姆级注册教程
    ChatGPT保姆级注册教程最近几天OpenAI发布的ChatGPT聊天机器人火出天际了,连着上了各个平台的热搜榜。这个聊天机器人最大的特点是模仿人类说话风格同时回答大量问题。有......