用几行Python代码实现自动配置OpenCV等依赖包环境,Windows系统下py文件开机自启,周期性自动执行程序且每次自动关闭命令行窗口

open cv 4.6.0 导入maven库以及依赖包 安装教程 opencv java 版 windows 以及linux 版安装 阅读详情

       最近完成的检测系统需要现场配置,为了节约时间,所以写成自动化的Python脚本去完成,主要是os.system()的使用,运行完关闭命令行最简单的方式就是使用bat文件。长话短说,直接贴代码

一、几行代码实现OpenCV等依赖包的环境自动配置

       新建一个pkg_installer.py,写入以下代码(按照自己需求自行更改libs依赖包名,在现场使用这个配置环境部署系统之前,先自己测试一下各个依赖包之间有没有冲突导致安装失败的),然后直接运行这个py文件就可以看到自己安装依赖包配置环境了:

import os
# 需要的环境依赖包列表,可以在每个包后面加上想要的版本,如numpy==1.20.3
libs = ["opencv-python", "requests", "numpy", "pillow", "pyftpdlib"]	
for lib in libs:
    os.system("pip install " + " -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com " + lib)

二、几行Python代码配置Windows系统下脚本开机自启

       1、仅一个Python脚本开机自启,运行完成后自动关闭命令行

              比如要让main.py程序在Windows下实现开机自启,可以新建一个autoStart.py文件,写入以下代码,然后右键以管理员身份运行这个autoStart.py文件即可,重启测试就可以看到main.py开机自启了,而且main.py执行完成后命令行将自动关闭:

auto_path = 'C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp\\'
auto_bat = 'MainAutoStart.bat'
BASE_DIR = "D:\\demo"	# 自行更改为main.py所在文件夹的绝对路径

with open(auto_path + auto_bat, 'w') as f:
    disk = BASE_DIR.split(':')[0]
    f.write(disk + ':\n')				# 更换磁盘区
    f.write('cd ' + BASE_DIR + '\n')	# 进入main.py所在文件夹
    """
    如果程序运行是在自定义的Python虚拟环境,添加下面这一行,并将VirtualEnvName修改为自己的环境名
    如果不需要进入自定义虚拟环境执行脚本,则无需添加
    """
    # f.write('CALL conda activate VirtualEnvName\n')		# 激活Python虚拟环境
    f.write('python main.py')							# 执行脚本
    print('自动启动程序正常!Windows bat文件已添加到开机启动:' + auto_path + auto_bat)

       2、同时让多个Python脚本开机自启,程序执行结束后保留命令行

       提前说一句,如果是多个程序而且还要全部在运行完后自行关闭命令行,可以根据上面 1 中的方式,对每一个程序分别创建bat文件加入开机启动。接下来这种是保留命令行的(主要是为了观察命令行log信息),比如除了main.py,还要让FTPServer.py(或者更多)同时开机自启。
       (1)新建一个autoStart.py文件,并写入以下代码:

import os
# 启动FTP服务器端脚本程序
os.system('start cmd.exe @cmd /k python FTPServer.py')
# 启动系统主程序
os.system('start cmd.exe @cmd /k python main.py ' + channel)

       (2)新建一个bat.py文件,写入代码,然后右键以管理员身份运行bat.py即可,重启测试可以看到FTPServer.py和main.py都开机自启了,而且这两个py文件启动后的命令行不会自动关闭:

auto_path = 'C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp\\'
auto_script = 'AutoStart.bat'
BASE_DIR = "D:\\demo"	# 自行更改为main.py所在文件夹的绝对路径

with open(auto_path + auto_script, 'w') as f:
    disk = BASE_DIR.split(':')[0]
    f.write(disk + ':\n')
    f.write('cd ' + BASE_DIR + '\n')
    # f.write('CALL conda activate TruckWeight\n')
    f.write('python autoStart.pyc')
    print('自动启动程序正常!Windows bat文件已添加到开机启动:' + auto_path + auto_script)

三、周期性自动执行程序且每次自动关闭命令行窗口

       这里代码举例展示简单的完整用法思路,主要解决的问题是:项目最初要求所有内容图片一直留存,后来硬盘满了,又让删除一个月之前的所有文件记录,每台服务器文件夹很多,按照日期命名的,那当然不可能耗费时间去挨个手动删除。。。

       所以想用Python代替,经过测试发现Python的os.remove()等删除四五百G的内容会造成服务器卡顿,就换成Windows系统命令行直接删除文件夹的方式,实现一个周期性自动批量删除过期文件夹的Python脚本autoClean.py,让autoClean.py脚本启动之后,周期性打开命令行,去执行过期文件判断和清理脚本。

       为了避免周期性的打开命令行,导致命令行的累加占用大量系统资源,因此需要考虑每次清理完成后,都自动关闭清理操作的命令行,所以使用的是上述第二节 1 中创建bat的方式,代码如下:

# -*- coding: UTF-8 -*-
"""
Coding is an Art
Create on 2022/3/12 22:09

@Author:YJ Zhao
"""
import os
import time
import datetime
BASE_DIR = "D:\\demo"		# 项目根目录
save_root = BASE_DIR + "\\history_files"		# 需要监控清理的文件夹,里面包含的全是以年月日命名的文件夹,例如20220212
clean_bat_file = BASE_DIR + '\\OutTimeImagesClear.bat'
DAY = 30        # 允许文件夹保留的最长天数


def delete_dir(path, file_data):
    file_created_time = file_data[:4] + "-" + file_data[4:6] + "-" + file_data[-2:]
    today = datetime.datetime.now().strftime('%Y-%m-%d')
    today = datetime.datetime.strptime(today, "%Y-%m-%d")
    file_created_day = datetime.datetime.strptime(file_created_time, "%Y-%m-%d")
    days = (today - file_created_day).days
    if days >= DAY:
        with open(clean_bat_file, 'a') as fw:
        	# 启动命令行执行删除整个文件夹包括其中所有文件的指令
            fw.write('rmdir ' + path.replace('/', '\\') + '\\' + file_data + ' /S /Q\n')


if __name__ == "__main__":
    # print("超过30天的图片将自动删除!\n自动清理程序运行中,请勿关闭......")
    while True:
        print(datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S') + ':正在检查过期图片...')
        data_names = []
        try:
            data_names = os.listdir(save_root)
            for data in data_names:
                print(data)
                delete_dir(save_root, data)
        except Exception as e:
            pass
        if len(data_names):
            if os.path.exists(clean_bat_file):
                os.system(clean_bat_file)
            print(datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S') + ':过期图片自动清理完成!')
            if os.path.exists(clean_bat_file):
                os.remove(clean_bat_file)
        print("超过30天的图片将自动删除!\n定时自动清理程序运行中,请勿关闭......")
        time.sleep(86400)

温馨提示:
       如果要用本文的周期性批量删除大量文件夹,或者删除指令时,建议先创建几个文件夹或文件进行测试,了解或熟悉删除功能后再使用,避免造成文件误删!!!
       以上删除文件夹使用的是Windows命令行下的rmdir指令,最后的 /S /Q表示:
         /S 除目录本身外,还将删除指定目录下的所有子目录和文件。用于删除目录树。
         /Q 安静模式,带 /S 删除目录树时不要求确认

Java如何配置OpenCV依赖 文章介绍了在JavaWeb开发中使用OpenCV的解决方案。详细介绍了如何下载和安装OpenCV的最新版本,并将相应的jar包和dll文件导入项目模块中。文章提供了引入依赖的代码示例,以及一个简单的测试代码,展示了如何使用OpenCV在Java中进行图像处理。最后,通过效果展示和参考文章的引用,强调了OpenCV在JavaWeb开发中的应用和优势。 阅读详情

相关推荐

半自动拍摄系统构建:从gPhoto2控制到图像预处理的完整实践

在计算机视觉项目中,高质量数据集的构建是提升模型性能的基础。数据采集的效率与一致性直接影响后续的模型训练效果,尤其在处理纹理复杂的平面物体(如石碑、文物)时更为关键。通过自动化控制相机拍摄与图像预处理流程,可以显著提升数据采集的标准化程度与效率。gPhoto2作为开源的相机控制库,支持通过命令行或编程接口远程操控数百种数码相机,实现自动对焦、曝光调整和图像下载。结合Python脚本与串口通信,还能联动控制电动滑轨或云台,实现多位置连续采集。这种半自动化方案在文物数字化、工业质检等需要批量采集标准化图像的场景

weixin_30938149的博客 447

如何安装OpenCV?需要安装什么依赖项?

安装OpenCV时需要安装一些依赖项,包括build-essential、cmake、git、libgtk2.0-dev、pkg-config、libavcodec-dev、libavformat-dev和libswscale-dev等。这些依赖项可以通过在终端中运行sudo apt-get install命令来安装。

gu1857035894的博客 3931

用Python+AI打造个人财务流水线:自动化记账与智能分类实战

个人财务管理本质是现金流的可观测、可追溯与可干预。其核心原理在于将分散在银行、微信、支付宝等平台的非结构化账单数据,通过OCR识别、规则引擎匹配和轻量AI语义增强,转化为标准化、可分析的结构化记录。该技术方案的价值不在于替代人工决策,而在于消除重复劳动、降低记账门槛、保障数据主权,并为预算控制、消费分析和财务健康评估提供可靠基础。典型应用场景包括上班族月度自动对账、多账户资金归集、异常支出预警及可视化仪表盘构建。本文聚焦于基于Python的本地化、低代码、高可控性财务自动化实践,深度融合OCR文本解析、正则

weixin_30897079的博客 348

OpenCV功能特性和依赖关系

有许多可选的依赖项和功能可以打开或关闭。

2401_82469710的博客 1335

MaixCAM 无线调试实战:告别USB线,SSH+rsync实现远程开发与部署

嵌入式Linux开发板通常依赖USB线进行调试,但在云台、小车、机械臂等运动场景中,线缆会限制动作并带来供电不稳的隐患。理解STA、AP等无线网络模式后,可借助SSH远程登录与rsync增量同步,实现代码传输、摄像头预览和模型部署的全无线工作流。本文从网络选型、环境配置到避坑指南,给出了一套经过实测的MaixCAM远程开发方案,帮助开发者摆脱物理连接束缚,提升多板卡联调与边缘节点维护效率。

weixin_34301132的博客 206

基于Playwright的工业设备数据自动化采集与RPA实践

在工业自动化与数字化转型领域,数据采集是连接物理设备与信息系统的关键环节。其核心原理是通过标准化接口或协议,将设备运行状态、生产参数等物理信息转化为可处理的结构化数据。这一过程的技术价值在于打破信息孤岛,实现生产过程的透明化、可追溯与智能化决策。传统数据采集常面临设备接口不统一、老旧系统改造困难等挑战,尤其在面对非标准通信协议或仅有图形界面的遗留设备时。此时,RPA(机器人流程自动化)技术提供了一种创新思路,通过模拟人工操作界面来获取数据,绕开底层接口限制。本文聚焦于利用Playwright这一现代化浏览器

weixin_34332905的博客 386

Linux命令及使用方法new

本文总结了Linux系统管理与开发环境配置的实用技巧,涵盖了常用命令、工具配置和问题解决方法。主要内容包括:Linux基础操作(文件/目录管理、vim编辑器、权限控制);系统资源监控(du/df命令);文本处理(grep/cut/awk);Ubuntu系统问题排查;开发工具链配置(Anaconda/Virtualenvwrapper/Jupyter);终端增强(cmder/Screen);IDE使用(VSCode/Visual Studio);非root权限软件安装;Windows冷门知识;LaTeX语法;

zhjadsf的博客 3217

Windows18-HD19上部署HunyuanVideo-Foley的硬核实操指南

ONNX Runtime是Windows平台AI模型推理的核心引擎,尤其在工业边缘场景中需深度适配定制化硬件环境;CUDA驱动与算子兼容性直接决定模型能否落地。本文聚焦Windows下ONNX模型部署的关键路径——从CUDA版本约束、驱动签名绕过、ONNX静态化导出,到ONNX Runtime源码编译与INT8量化优化,覆盖GPU加速推理全链路。特别针对HD19嵌入式GPU等非标硬件,解析动态Shape崩溃、FlashAttention缺失、PCIe带宽降级等典型故障,提供可复现的注册表修改、Patched

weixin_29174141的博客 1万+

【信息科学与工程学】计算机科学与自动化——第三十九篇 ITSS运维体系101 软硬件维护01

编号类型领域软件维护/硬件维护/软硬融合系统维护维护的类型和因素/属性/类别和内容列表关联知识和标准和法律法规1通用软件全生命周期维护企业IT/业务系统/政务系统软件维护(含操作系统、中间件、数据库、业务应用、接口集成)​ 1)改正性维护:修复交付后发现的缺陷。因素包括需求理解偏差、设计缺陷、编码错误、接口契约不一致、数据校验缺失、并发竞态、边界条件未处理、第三方库Bug、配置错误。属性维度含故障严重程度、影响用户数、业务中断时长、数据一致性风险、回归范围。

weixin_49199313的博客 275

基于Clawdbot与Jetson的智能机器人视觉抓取开发全攻略

边缘计算与嵌入式AI是当前机器人及物联网领域的关键技术,其核心在于将AI模型部署在资源受限的边缘设备上,实现低延迟、高响应的实时智能决策。其技术原理通常涉及模型轻量化、硬件加速及软硬件协同优化,以在算力、功耗与成本间取得平衡。这一技术对于智能机器人、工业自动化及无人系统等场景具有重要价值,能显著提升设备的自主性与环境适应性。本文聚焦于利用Clawdbot机器人平台与NVIDIA Jetson边缘计算模块,结合TensorRT模型优化与串口通信协议,构建一个完整的视觉抓取应用,涵盖了从硬件选型、环境配置到AI

weixin_33735077的博客 387

Xadow与Intel Edison:模块化可穿戴硬件开发平台全解析

模块化设计是嵌入式系统与物联网开发中的重要理念,它通过标准化的接口将复杂硬件分解为独立功能单元,实现即插即用与快速迭代。其核心原理在于定义统一的电气与通信协议,如I2C、UART总线,从而降低硬件集成的复杂度与风险。这种设计为可穿戴设备、智能硬件等领域的原型开发带来了巨大技术价值,能显著缩短从概念验证到功能实现的时间。在应用场景上,它尤其适合需要集成多种传感器(如心率、加速度计)并具备本地计算能力的复杂可穿戴设备开发。本文以Xadow可穿戴套件与Intel Edison计算模块的组合为例,深入剖析了如何利用

weixin_33812433的博客 420

python如何依赖opencv

【python如何依赖opencv】 windows10 python 3.7(安装vs2015时附带安装的python) opencv (源码和build都在C:\opencv,已经安装好了的) 0、用任务管理器的详细信息里面【打开文件位置】查到python.exe实际用的是在哪个目录。 1、把cv2.cp37-win_amd64.pyd放到C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\Lib\site-packag

jingqing0603的博客 665

高校具身智能数据采集标准化方案:时间同步、多模态对齐与可复现测评

具身智能数据采集是连接物理世界与AI模型的关键桥梁,其本质是多模态传感器(视觉、IMU、力觉、语音等)在真实交互场景下的高精度时空对齐与闭环反馈。不同于传统图像或文本数据,它要求微秒级时间戳同步、亚度级标定精度和毫秒级动作-感知延迟控制,技术难点集中于时序一致性、空间一致性与系统鲁棒性。该过程直接决定机器人学习策略的泛化能力与科研结果的可复现性,广泛应用于高校实验室的抓取、操作、导航等任务建模。本文聚焦高校科研场景,提出以PTP时间中枢、硬件抽象层和任务编排器为核心的轻量级标准化框架,并配套可落地的数据格式

weixin_33850015的博客 183

python的opencv使用总结

巴拉巴拉

jack的博客 7456

【信息科学与工程学】【控制科学】第十二篇 微型计算机控制技术01

更精确的经典模型:I1在第5周期WB结束,I2最早可在第6周期进入EX,但I2在ID阶段就需要R1,因此I2的ID需在第6周期,而I1的WB在第5周期,所以I2的ID可以紧接在第6周期,但中间仍有一个stall(因为I1的EX结果要等到MEM之后才能转发给ID?有优先级继承后,Task_L被提升优先级,不会被Task_M抢占,阻塞时间缩短为Task_L剩余执行时间(9ms),仍可能超过10ms,但可通过调整任务周期或使用中断处理缓解。电感L=10μH,输出电容C=100μF,ESR=5mΩ。

weixin_49199313的博客 8637

opencv3.4的依赖项(包括ippicv+face_landmark_model.dat+vgg+boostdes)

我们在ubuntu使用cmake编译opencv的时候,好多依赖项要从外网上面下载,包括ippicv+face_landmark_model.dat+vgg+boostdes总共13个依赖文件,我在ubuntu18.04下面安装的是opencv3.4.4以及其拓展模块,而且经过测试已经成功了,希望能帮到你们

【opencv】ubuntu20.04/18.04源码编译安装opencv3.2.0保姆教程(附:github下载安装包及其非常重要的依赖包)& 所有错误总结

ubuntu20.04/18.04编译安装opencv3.2.0保姆教程(附:github下载安装包及其非常重要的依赖包)& 所有错误总结

SensizliK 1541

DIY便携式PEMF磁脉冲治疗仪:百元成本自制生物物理疗法设备

脉冲电磁场(PEMF)疗法是一种基于生物物理原理的非侵入性技术,它通过特定频率的电磁脉冲作用于细胞层面,影响细胞膜电位和离子通道活动,从而可能调节细胞代谢与功能。其技术价值在于提供了一种物理干预手段,在健康科技和生物黑客领域被探索用于放松、恢复等场景。实现PEMF的核心是通过信号发生与功率放大驱动电磁线圈产生可控磁场。本文以蓝牙音频模块和智能手机App为切入点,详细解析了如何利用低成本电子元件(如DFRobot XY-WRBT模块和漆包线线圈)构建一个可自定义频率的便携式PEMF设备,涵盖了从电路设计、线圈

weixin_31476015的博客 352
上一篇: 如何使用Unity创建场景并转为gym环境,外接自定义强化学习算法
下一篇: D-Bus理论基础
Alibutter
博客等级 码龄9年 62粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值