本文内容:
自动化安装库方案
安装&验证第三方库安装
实战操作
python + os +ini配置文件
1 配置文件(xxx.ini)读取
2 安装第三方库
3 验证是否安装成功
4 日志信息输出
1- 读取配置文件。
# 1- 读取配置文件。
fo = open("./config.ini") # 打开文件对象,还没读
# lines = fo.readlines() # 打印出来['selenium\n', 'requests\n', 'aaaa\n', 'bbbb'] 会有换行符
lines = fo.read().splitlines() # 取换行符。['selenium', 'requests', 'aaaa', 'bbbb'] 是一个列表。
print(lines)
2 执行安装库的指令
# 2 执行安装库的指令
#先查下是否已经有库,pip list,使用os模块
backInfo = os.popen("pip list")
info = backInfo.read()
print(info) # 会打印出pip list内容,这是字符串。
# 安装库
for line in lines:
# 已安装过:
if line in info:
print("该库已经安装成功")
else:
# 未安装继续安装
pipObject = os.popen('pip install ' + line) # 安装
pipRes = pipObject.read() # 获取安装内容。如果安装成功有succeeful
3 验证是否安装成功
if 'Successfully' in pipRes:
print("安装成功---->") # 实际工作中会加入日志。
else:
print("安装失败---->")
4 打印日志
# 4 打印日志
# python 中有现成的logging-----内置模块
import logging
#配置
LOG_FORMAT = "%(asctime)s - %(levelname) - %(message)s"
DATE_FORMAT = "%Y/%m/%d %H:%M:%S"
logDir = './auto_pip.log'
logging.basicConfig(filename=logDir,level=logging.DEBUG,
format=LOG_FORMAT,datefmt=DATE_FORMAT)
完整代码:
import os
# 4 打印日志
# python 中有现成的logging-----内置模块
import logging
#配置
LOG_FORMAT = "%(asctime)s - %(levelname) - %(message)s"
DATE_FORMAT = "%Y/%m/%d %H:%M:%S"
logDir = './auto_pip.log'
logging.basicConfig(filename=logDir,level=logging.DEBUG,
format=LOG_FORMAT,datefmt=DATE_FORMAT)
# 1- 读取配置文件。
fo = open("./config.ini") # 打开文件对象,还没读
# lines = fo.readlines() # 打印出来['selenium\n', 'requests\n', 'aaaa\n', 'bbbb'] 会有换行符
lines = fo.read().splitlines() # 取换行符。['selenium', 'requests', 'aaaa', 'bbbb'] 是一个列表。
# print(lines)
# 2 执行安装库的指令
#先查下是否已经有库,pip list,使用os模块
backInfo = os.popen("pip list")
info = backInfo.read()
# print(info) # 会打印出pip list内容,这是字符串。
# 安装库
for line in lines:
# 已安装过:
if line in info:
print("该库已经安装成功")
logging.warning(f"---->{line}installed") # 加入日志
else:
# 未安装继续安装
pipObject = os.popen('pip install ' + line) # 安装
pipRes = pipObject.read() # 获取安装内容。如果安装成功有succeeful
# 3 验证是否安装成功
if 'Successfully' in pipRes:
# print("安装成功---->") # 实际工作中会加入日志。
logging.info(f"---->{line}installed pass")
else:
# print("安装失败---->")
logging.error(f"---->{line}installed fail")