ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

脚本安装第三方包

2022-07-31 14:34:13  阅读:156  来源: 互联网

标签:脚本 lib read res subprocess stderr ic 安装 第三方


参考1<不成熟>

install_scripts.py

  关注点: tar.gz解压后包,如何脚本安装  --- 经过当时测试, 最后发现此类解压后包还是手动安装为好.


import os
import subprocess
import time

from icecream import ic

"""
>>>总结:
1 把当前文件放在 whl文件结尾的同级目录下
2 安装顺序
2.0 用PyCharm打开项目> 创建好虚拟环境 > Terminal中执行dir把当前所有需要安装的文件列出,复制到一个text中,然后放到excel中,作为之后安装之后的确认对比.
还有一种办法: 把其所有文件放到一个列表中,每安装一个,把其移除,最后剩下的则是没有安装的.
2.1 先用脚本安装whl结尾文件
2.2 关于压缩文件(tar结尾的的压缩包)
Ternimal > 先以pip install 名字==版本 方式安装(即相当于以外网下载.)
2.3 再执行一次 2.1
2.4
手动解压tar.gz包 > 手动安装
2.5 若还有未安装好的文件, 再执行一次2.1及2.4 , 然后查看未安装好的软件,根据报错解决未成功安装的软件
"""

pkgs_path = os.path.dirname(__file__)
ic(pkgs_path)
libs_list = os.listdir(pkgs_path)

error_list = []
error_dir_list = []

for lib in libs_list:
# ic(lib)
# 若是whl文件,则pip直接安装
if lib.endswith('.whl'):
# pass
cmd = 'pip install %s' % lib
ic(cmd)
res = subprocess.Popen(cmd,
shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# ic('stdout',res.stdout.read().decode('gbk')) # 获取正确命令执行之后的结果
ic('stderr', res.stderr.read().decode('gbk')) # 获取错误命令执行之后的结果
if res.stderr.read():
error_list.append(lib)

# 3 如果是tar.gz解压后的文件夹
elif os.path.isdir(lib):
if lib in ["Django-2.0", "Mako-1.0.6"]:
continue

ic(lib)
cmd = f'cd ./{lib}'
cmd1 = f'python setup.py install'
# res = subprocess.Popen("dir",shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# ic('stderr', res.stdout.read().decode('gbk')) # 获取错误命令执行之后的结果
# ic(cmd,cmd1)
#
ic(cmd + "&" + cmd1)
res = subprocess.Popen(cmd + "&" + cmd1 + "&" + "cd ../",
shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
ic('stderr', res.stderr.read().decode('gbk')) # 获取错误命令执行之后的结果
time.sleep(1)
if res.stderr.read().decode('gbk'):
item = {
"name": lib,
"error": res.stderr.read().decode('gbk')
}
error_dir_list.append(item)

ic("crror", error_list)
ic(error_dir_list)

# ic('stdout',res.stdout.read().decode('gbk')) # 获取正确命令执行之后的结果
# ic('stderr',res.stderr.read().decode('gbk')) # 获取错误命令执行之后的结果
 

 

标签:脚本,lib,read,res,subprocess,stderr,ic,安装,第三方
来源: https://www.cnblogs.com/tslam/p/16537051.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有