使用.NET framework MVC编写简易的增删查

一,页面效果 二,前期准备 1,数据库创建好表 2,新建项目 3,添加数据实体模型 三,代码实现 一,页面效果 1,首页效果 2,新增页面 3.删除页面 4,查询页面 二, 前期准备 1,数据库创建好表 设置好主外键,主键,自动增长列 2,创建项目 打开visual studio 2019,选择项目模板 选择.NET Framework项目 点击“下一步” 3,添加数据实体模型 三,代码实现 1,在Controllers文件下添加一个.cs文件 获取表数据,左连接,使用Include链接数据 public class TestController : Controller { // GET: Test TestEntities1 dbContext=new TestEntities1(); public ActionResult Index() { //左链接,使用Include链接数据 var list = dbContext.Schedule.Include("Type"); return View(list.ToList()); } 添加index视图添加表格数据代码 <table border="1"> <thead> <tr> <td>日程编号</td> <td>日程执行人</td> <td>日程分类</td> <td>计划开始时间</td> <td>计划结束时间</td> <td>日程内容</td> <td>备注</td> </tr> @{ foreach (var item in Model) { <tr> <td>@item.

最新大学计算机专业实习心得报告

最新大学计算机专业实习心得报告(篇1) 一、实习目的 通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,为顺利毕业进行做好充分的准备,并为自己能顺利与社会环境接轨做准备。通过这次实习,使我们进一步理解和领会所学的基本理论,了解计算机技术和信息管理技术的发展及应用,较为系统地掌握计算机应用技能和信息管理技能,把所学知识与解决实际问题相联系,能够利用计算机处理工作中的各种信息,培养我们发现问题、分析问题和解决问题的能力,从而提高我们从事实际工作的能力。 通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,了解设计专题的主要内容,使学生能够了解社会、学校的需要,在实习单位领导的帮助,对自己今后所从事的事业有一个实习了解的过程。为毕业设计的顺利进行做好充分的准备,并为自己能顺利与社会环境接轨做准备。 二、实习意义 通过实习,使学生在社会实践中接触与本专业相关的实际工作,增强感性认识,培养和锻炼学生综合运用所学的基础理论、基本技能和专业知识,去独立分析和解决实际问题的能力,把理论和实践结合起来,提高实践动手能力,为学生毕业后走上工作岗位打下一定的基础;同时可以检验教学效果,为进一步提高教育教学质量,培养合格人才积累经验。计算机是一门对实践要求较高的学科,通过专业实习,使学生能熟悉有关计算机专业的各个领域,使学生毕业后能胜任与本专业相关的工作。 大学四年学习了很多,经历了很多,得到的是学习能力、处事能力和一些专业知识。可面对社会,我们经验太少,思想单纯!毕业实习,给了我们一个了解社会,增加经验,熟悉工作单位的机会。锻炼自己的动手能力,将学习的理论知识运用于实践当中,反过来还能检验书本上理论的正确性,有利于融会贯通。同时,也能开拓视野,完善自己的知识结构,达到锻炼能力的目的。一切都是为了让实践者对本专业知识形成一个客观,理性的认识,从而不与社会现实相脱节。此外通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,了解设计专题的主要内容,为毕业设计的顺利进行做好充分的准备,并为自己能顺利与社会环境接轨做准备。 三、实习内容 第一、运用PHOTOSHOP处理公司的产品图片、我们公司产品的图片是用手机及数码照相机拍摄的,而我们公司的网站对上传的图片大小有要求,所以我要把它们处理成相应的大小并且保持图片不失真。 第二、完善公司的网站、由于公司最近新更新了一个网站,我负责把公司产品中缺少的上传。 第三、做好公司网络的加密工作、由于公司对手较多,为了避免公司信息的外漏,对公司电脑进行了加密工作,并加强管理公司的防火墙。 第四、客户信息的管理、实习期间正好遇到一个展会,做各种电子表格,统计并完善了客户的信息。 四、实习体会和总结 经过实践和实习,我对未来充满了美好的憧憬,在未来的日子,我将努力做到以下几点: 一、继续学习,不断提升理论涵养。 在信息时代,学习是不断地汲取新信息,获得事业进步的动力。作为一名青年学子更应该把学习作为保持工作积极性的重要途径。走上工作岗位后,我会积极响应单位号召,结合工作实际,不断学习理论、业务知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升能力,以广博的社会知识拓展视野。 二、努力实践,自觉进行角色转化。 只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。同样,一个人的价值也是通过实践活动来实现的,也只有通过实践才能锻炼人的品质,彰显人的意志。必须在实际的工作和生活中潜心体会,并自觉的进行这种角色的转换。 三、提高工作积极性和主动性 实习,是开端也是结束。展现在自己面前的是一片任自己驰骋的沃土,也分明感受到了沉甸甸的责任。在今后的工作和生活中,我将继续学习,深入实践,不断提升自我,努力创造业绩,继续创造更多的价值。 最后感谢单位领导和部门领导以及同事对我的支持和帮助,我会继续努力的。 最新大学计算机专业实习心得报告(篇2) 一、实习目的 顶岗实习,是一个让我们三年所学的理论,进行展示的一个舞台,它也是我们毕业生对自己三年所学的一个自我检测。然而作为一个实习生,我觉得我们需要做的就是怎么在这个舞台上发挥自己所学,真正的达到学有所用,学有所成。 二、实习时间 20__年2月23日至今 三、实习地点 __有限公司 四、实习单位和岗位 宁波群志光电有限公司,IE副工程师 五、岗位工作描述 工业工程根据百度定义则是培养以机械工程、电子工程等技术为基础,掌握能够对企业生产系统等进行规划、设计、评价和创新的技术与管理相结合的技术。而我所学的专业知识于我现在的工作基本上用不到。除了在学校考取的计算机等级中涉及的EXCEL表格和WORLD文档是在日常工作中所需的。其他一些概念理论方面的知识则需要师傅带领重新学习。虽说,在学校学习的专业知识是没有太大运用到工作中,但是在学习方面的一些态度以及学习精神,在学校工作养成的一些工作习惯及态度还是极好的运用到我现在的工作Training中。 六、实习总结 二月,我独自一人背上自己的行李,踏上寻工作的路程,加入了求职人群。我选择了这个喧嚣繁华的大城市—宁波。这个承载着千千万万年轻人梦想的地方,充满机会,同时也充满挑战。每天看着忙忙碌碌的寻梦者,他们脸上注满疲惫但他们依然坚持。而我也在这个陌生的城市里开始了我的寻梦之旅—顶岗实习。顶岗实习跟人生一样,充满了五味杂全,酸甜苦辣,不同的阶段、不同的辛酸、不同的精彩,让我的实习生涯充满了希望。 第一阶段,找工作的辛酸。 首先是之前在学校就已经开始的校园各类大大小小的企业招聘会,基本上在校园内学院安排的都是我们专业对口的一些工作岗位。我也面试过几家对口专业例如网页设计方面的岗位,投过阿里巴巴的简历,但是后来结合了一下暑假在金华实习过的网页设计师的经历,思考了一下或许自己可以尝试一下其他方面的工作。所以后来在投简历时,我就将工作岗位定位放的宽广,基本上觉得自己可以涉及的觉得自己有能力胜任的工作都过滤了一遍。后来决定去家里附近的一家台资企业去面试试试。最后面通过笔试,听力,主管面试最后通过该公司的新人面试,进入到这家企业成为一名IE部门的副工程师。此番面试我了解到,你学什么在面试中占有一部分因素,但其次是你端正上进的态度比较让面试官对你产生好的印象来录用你。 心得体会:找工作要多去尝试几家,鸡蛋不能放在一个篮子里。找的多了,自然就会找到合适的工作,有时候放弃未免不是另一种解决办法。当然,梦想和现实也是有差距的,梦想也不是一下子就能实现的,要一步一个脚印,踏踏实实一步一步走,终有一天会成功实现,而现在只是为梦想准备的启程阶段。 第二个阶段,上岗培训的充实 像我们这个岗位在上手做之前,需要熟悉的就是车间每个流程的衔接,整个流程是怎么跑的,一个产品出来需要经过的流程具体主要是哪几部分。我的岗位在公司中,就是替公司找出哪里需要精进的地方。在做一个产品的时候,每个环节的衔接,每个环节需要的时间,工人在工位上卡顿的时间,机器中途坏掉需要维修的时间,切机换线的时间等等,将他们所需的时间汇总起来,再由我们来想出解决方案,使得时间得以精简,使得每天人力的产出得到最大化,让公司的盈利达到顶端就是我们需要做到的。而现在,熟悉每个流程的运作就是基础,在精通每个流程的运作后,你才能够知晓哪些地方是可以在原有的基础上可以精简的,才能在meeting的时候提出你的解决方案。 我是主要学习报表的过程,因为是计算机专业的学子,所以所学的office软件都能在工作中运用到。稍微有些基础可以运用到学习中,不至于在像之前学习整个产品制程的时候那样手足无措。不过有些不足的地方就是感觉在学校学习的东西还不够多,在想运用的时候,有些东西还是很没落实到位,很多需要用到的东西涉及到了,还是一片空白。在做报表的时候也是需要逻辑方面的知识涉及,如果只是单纯的数据粘贴复制,完全不去考虑逻辑,那么一段时间下来,你其实只是在训练你自己的手速而已,并不是在锻炼你自己的工作学习思维能力。我们既然是作为毕业的大学生,就不能像一般初中或者高中毕业就能做到的技术或者思维去做一件事情,我们需要考虑到更高的层面。这样才能推动自己向前看,往前发展,才会更上一层楼。 心得体会:新起点,充满了挑战,培训让我成长,让我充实。 第三阶段,是正式上线阶段。 目前就我掌握的技术来看,我还是处于入门的一个阶段。首先我现在与刚进公司的区别就是,能大概听懂在平常开会时候提到的一些专业术语,以及开会中提到的问题大概是由什么因素在影响。而这些因素是由于什么问题导致的,后续需要使用什么样的技术去解决,概念上的问题,逻辑上的问题,就我目前掌握的知识,根本无法去回答在会上提出问题的领导。需要在工作中的师傅帮助来回答。下一阶段,我希望自己能有所进步的方面就是在问题深一层次的方面能够有足够的逻辑与思维去解决。而不是一直依靠于在在我身边培训我带着我Training的师傅一直带着我去走。自己多去想想问题,才会让思路越来越灵活,在想问题的时候才会有更多的想法及解决方案,学的也会更快一些。 我在实习期内学习的内容总结为一下几项内容。首先总所周知,进到公司的第一周,基本就是由前辈们来为你普及公司的些方面的知识、发展史、制造些什么等等内容。接着新人训结束后,我们就开始制程的学习,在结束第一周公司的产品普及后,进到车间后我就稍微对这些方面稍微了解了那么一点,明白每个流程具体在做什么,车间内的工人在做什么动作也都了解懂得一些,而不懂得地方,我们公司对新人有特别优待就是前几个月会有年资比你久的师傅一直带着你去熟悉了解各个方面,在你不懂得时候可以在旁边给你指导,像在学校内上课一样,有人指导,不足以不懂得时候手足无措。在熟悉完制程后,我们就要开始熟悉Excel的制作,表格内的数字代表些什么含义,为何这样计算,逻辑方面的知识等等。 心得体会:实践永远是检验真理最快的办法,也是积累经验最快的办法,只有多实践才能接触的更多,了解更多,这也是一个新手成为大师的必经之路。 七、实习体会与收获 在这短暂的实习期间中,我学到了许多书本上学不到的知识。从学校走向社会,首要面临的问题便是角色转换的问题。从一个学生转化为一个单位人,在思想的层面上,必须认识到二者的社会角色之间存在着较大的差异。学生时代只是单纯的学习知识,你可以有很好的同学,很好的朋友,大家相互嘘寒问暖,不必勾心斗角。而社会实践则意味着继续学习,并将知识应用于实践,学生时代可以自己选择交往的对象,而社会人则更多地被他人所选择。存在着利益关系,又工作繁忙,就多了份人情世故。诸此种种的差异。不胜枚举。但仅仅在思想的层面上认识到这一点还是不够的,而是必须在实际的工作和生活中潜心体会,并自觉的进行这种角色的转换。 通过实习使我对计算机有了更具体认识,通过对计算机的具体操作和亲自实践巩固了课本上学的知识,在这个基础上把所学的计算机应用专业理论知识与实践密切结合起来,培养自己实际工作能力与分析能力,达到学以致用的目的。理论与实际的结合,学校与社会的勾通,进一步提高了自己的思想觉悟,业务水平;尤其是观察分析和解决问题的实际工作能力,实习的一个重要功能,在于运用教学成果,检验教学成果。运用教学成果,就是把课堂上学到的系统化的理论知识、尝试性地应用与实际的工作中。 经过这段实习,我有些慌张,我意识到自己并不成熟,并没有做好将要走上社会的准备工作。我还有太多的地方需要改进,思想上的,生活作风上的,我应该抓住这次实习机遇,用最快的速度进步,把握住自己的不足,在今后的生活中注意锻炼。为适应以后的工作,为之打好基础。 实习,是开端也是结束。实习的同时也让我了解到了自己的不足,在今后的工作和生活中,我会继续努力,完善自我。更加努力的奋斗下去。 最新大学计算机专业实习心得报告(篇3) 一、实习目的 理论联系实际,巩固所学知识,提高处理实际问题的能力。为自己能顺利与社会环境接轨做准备。 二、实习任务 计算机基础理论在实践中的应用 三、实习内容 1、mysql数据库的安装。配置和使用 2、java基础,java网络编程 3、linu基础命令,linubashshell编程,linu服务器的配置,linu常用软件的安装配置使用 4、网络安全 5、计算机的日常维护 四、实习过程 1、网络基础的实践 20__年1月6日,我把电脑从学校搬回家里。20__年1月13日,家里的网络通了。在这段时间内,我和家人去网通的代理商那里报装了adsl1m包年的套餐。我在代理商那里观察了他们的网络布线情况。那里有一个modem和一个交换机,上面密密麻麻地布满了许多网线和一些电话线。20__年1月13日,安装人员终于来到我家,帮助我们接通了网络。家里电脑的上网方式是虚拟拨号上网,使用的ppp协议。线路连接方式是:电话线modem电脑网卡的rj45接口。电脑在学校上网的线路连接方式是:电话线分离器电话机路由器电脑主机的rj45接口。在学校,提供服务的运营商是中国电信;在家里,提供服务的运营商是中国网通。使用中国电信的打开南方的网页快,例如打开qq空间;使用中国网通的打开北方的网页快,例如看央视的视频。我的电脑在家里出现的问题有:1、打开不了qq空间(在学校可以)2、linu上不了网(在学校可以)。 2、数据库的学习 20__年2月,我开始做毕业设计。数据库sql200在p2安装过程中失败。失败的原因本人至今不知道。大二时曾经安装过sql__,后来使用出现问题,我把它卸载掉。本人重装系统后发现:原来重装前的系统可以安装sql,从那一次开始,安装都失败了。有一次,安装sql过程中出现系统蓝屏。本人得出的结论是:sql__软件与p2系统不兼容。本人是盗版软件的受害者。因此,本人下决心学习mysql。msql是稳定的,开源的中小型数据库。在不同系统都可以安装,使用mysql。大二学习的数据库是sql__,这段时间学习的数据库是mysql。mysql是使用命令行的方式,sql是图形界面。他们的语法都是sql语言。所以,学习难度不大。他们的语法之间有细微的差别。 3、计算机日常维护与网络安全 从20__年3月至今(在电脑上网期间),我认为微软自带的ie浏览器的稳定性和安全性差。本人偏爱firefo浏览器。firefo的安全性和稳定性较强,可以根据需要安装插件。不知道为什么,本人用p2系统安装光盘卸载ie失败,只好用ie修复专家把ie的部分屏蔽。但是有的网页只能ie用打开,如在央视在线观看视频。在使用系统p2的过程中,计算机的蓝屏故障频繁。蓝屏故障的原因有软件安装问题,有时候软件卸载引起的问题。所以我决定学习linu,在windows中打游戏,看视频。 4、linu的学习

Linux部署开源文档预览服务kkfileview

Linux部署开源文档预览服务kkfileview 一、安装 LiberOffice wget https://kkfileview.keking.cn/LibreOffice_7.1.4_Linux_x86-64_rpm.tar.gz tar -zxvf LibreOffice_7.1.4_Linux_x86-64_rpm.tar.gz cd LibreOffice_7.1.4.2_Linux_x86-64_rpm/RPMS yum install -y *.rpm 注:安装过程如下,office组件较大请耐心等待 二、验证office组件 cd /opt/libreoffice7.1/program ./soffice --version # // 注册soffice命令, 修改环境变量文件 # vim /etc/profile # // 添加下面内容 # export PATH=$PATH:/opt/libreoffice7.1/program # // 执行如下命令使环境变量生效 # source /etc/profile # soffice --version,成功返回版本号即表示已注册 三、安装kkfileview wget https://kkfileview.keking.cn/kkFileView-4.1.0.tar.gz tar -zxvf kkFileView-4.1.0.tar.gz 四、修改kkfileview配置参数 cd kkFileView-4.1.0/config/application.properties # 说明:加粗标识具体情况修改 server.port = ${KK_SERVER_PORT:8081} #文件资源路径 file.dir = ${KK_FILE_DIR:/data/app/kkfileview/kkFileView-4.0.0/temp} ###################### office-plugin ##################### ##office服务的进程数,默认开启两个进程 office.plugin.server.ports = 2021,2022 #office组件home路径 office.home = ${KK_OFFICE_HOME:/opt/libreoffice7.

大语言模型 -- 部署LaWGPT模型记录

模型介绍: 该系列模型在通用中文基座模型(如 Chinese-LLaMA、ChatGLM 等)的基础上扩充法律领域专有词表、大规模中文法律语料预训练,增强了大模型在法律领域的基础语义理解能力。在此基础上,构造法律领域对话问答数据集、中国司法考试数据集进行指令精调,提升了模型对法律内容的理解和执行能力。 开源仓库:https://github.com/pengxiao-song/LaWGPT 我的运行环境:Pytorch 1.9.1 Ubuntu 1 * NVIDIA T4 32G 1、安装conda环境 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-Linux-x86_64.sh bash Anaconda3-2023.03-Linux-x86_64.sh 设置环境变量 export PATH="/home/ubuntu/anaconda3/bin:$PATH" source ~/.bashrc 2、clone模型安装依赖 # 下载代码 git clone git@github.com:pengxiao-song/LaWGPT.git cd LaWGPT # 创建环境 conda create -n lawgpt python=3.10 -y conda activate lawgpt pip install -r requirements.txt 3、安装模型推理所需包 conda install cudatoolkit conda install scipy conda insatll chardet 4、运行webui界面 bash scripts/webui.sh 注意,这一步需要使用huggingface上已经训练好的模型,我的服务器是新加坡地区访问可以正常下载,国内的服务器可能会出现下载卡顿,总共14G左右的模型 5、访问weui就可以体验这个法律模型了

基于OpenMV的自动驾驶智能小车模拟系统

一、项目简介 基于机器视觉模块OpenMV采集车道、红绿灯、交通标志等模拟路况信息,实现一辆能车道保持、红绿灯识别、交通标志识别、安全避障以及远程WiFi控制的多功能无人驾驶小车。 赛道规格: 1、编程所需软件: OpenMV:使用OpenMV官方的OpenMV IDE ESP8266:使用Arduino官方的Arduino IDE STM32:使用ARM官方的Keil uVision5(ARM版) 2、功能介绍: OpenMV:主要是利用OpenMV进行路况信息(红绿灯、交通标志、车道)的采取,以及和STM32的通信。 ESP8266:主要是利用ESP8266与手机端进行远程的指令接收和数据交互,以及和STM32的通讯。 STM32:主要是通过ESP8266接收远程控制指令和处理路况信息,并根据这些指令数据进行实时的PID控制小车运动。 二、硬件系统 主要依靠机器视觉模块OpenMV通过图像处理的方式获取实时的路况信息,以及超声波传感器获取障碍物距离信息,得到的路况数据再通过串口传输到主控器STM32上面,STM32会将实时的路况信息处理成智能小车的运动控制指令,让智能小车实现红绿灯识别、交通标志识别以及车道实时保持的功能,还有STM32也会通过WiFi模块ESP8266与手机端进行路况数据和控制指令的远程交互。硬件系统框图如下: 下面简单介绍一下,整个系统用到的硬件模块。 具体的硬件电路连接框图如下: 三、软件系统 1、OpenMV中的路况识别算法实现 本项目的主要路况数据信息都是基于OpenMV摄像头获取的图像进行图像处理得到的。要实现智能小车的自动驾驶行为,最起码要让小车识别到红绿灯、交通标志以及车道,后续主控器才能根据这些路况数据信息控制小车的运动。关于机器视觉模块OpenMV的介绍,可以浏览《初探机器视觉模块OpenMV》这篇文章。 ①红绿灯识别 主要是对摄像头每帧拍摄到的图像进行图像进行阈值处理,再进行判断出现的究竟是哪种红绿灯(红灯、绿灯、黄灯),然后再将这个判定结果和其他两个数据一起打包通过串口发送出去。 【程序流程图】 【主要程序】 ###################################开始#################################### ... sensor.set_pixformat(sensor.RGB565) # 图片格式设为 RGB565彩色图 light_threshold = [(59, 100, 26, 127, -128, 127),(59, 100, -128, -40, -128, 127)]; #设置红绿灯阈值,默认为0无红绿灯 1红灯 2绿灯 4黄灯 ... #定义寻找色块面积最大的函数 def find_max(blobs): max_size=0 for blob in blobs: if blob.pixels() > max_size: max_blob=blob max_size = blob.pixels() return max_blob #主循环 while(True): clock.

Android 13 设置静态ip导致有线网一直断开重连分析解决

Android 13 设置静态ip导致有线网一直断开重连分析解决 文章目录 Android 13 设置静态ip导致有线网一直断开重连分析解决一、简单分析和解决1、日志线索:2、相关代码类:3、重连的关键代码4、解决方法一直重连:(1)去除有线网络对网关的检验(2)去除重连操作 其他: 本文分享一个Android13 有线网的bug!或者说新的有线网络的一个修改。 Android13 设置静态ip地址发现一个问题,有线网会一直断开重连。 设置正常的网关没有这个问题,设置错误的网关就会有这个问题。 一、简单分析和解决 1、日志线索: 找到循环断开连接的关键日志,从日志中找出连接上后,断开网络的日志。 05-13 15:28:38.768 1186 3064 W IpClient.eth0: [IpReachabilityMonitor] WARN ALERT neighbor went from: null to: NeighborEvent{@43196,RTM_NEWNEIGH,if=14,170.168.20.1,NUD_FAILED,[null]} 05-13 15:28:38.768 445 3068 W resolv : Validation failed 05-13 15:28:38.769 1186 3064 W IpReachabilityMonitor: FAILURE: LOST_PROVISIONING, NeighborEvent{@43196,RTM_NEWNEIGH,if=14,170.168.20.1,NUD_FAILED,[null]} 05-13 15:28:38.770 802 1023 I EthernetNetworkFactory: updateNeighborLostEvent FAILURE: LOST_PROVISIONING, NeighborEvent{@43196,RTM_NEWNEIGH,if=14,170.168.20.1,NUD_FAILED,[null]} 05-13 15:28:38.771 802 1023 D EthernetNetworkFactory: reconnecting Ethernet 05-13 15:28:38.845 802 1023 D EthernetNetworkFactory: Starting Ethernet IpClient(eth0) 05-13 15:28:38.

stable-diffusion-webui 安装问题记录

安装完成后,浏览器打开:http://127.0.0.1:7860/,无论点哪里,只要触发交互,都提示: 解决办法: 1、关闭(墙外魔法工具)软件(不一定有效) 2、需要不关魔法工具的环境下的话,可以修改webui-user.bat文件(Linux系统对应webui-user.sh),增加参数:–no-gradio-queue

[My Own Wheels]Python3中的自由“import”

Python3中的自由“import” 下面的旧内容不用看了,问了AI,有更轻松的办法。 import importlib.util spec = importlib.util.spec_from_file_location("my_module", "/path/to/my_module.py") my_module = importlib.util.module_from_spec(spec) spec.loader.exec_module(my_module) 几句代码就解决了,Python太方便了。 ​ 很久没更新了,一直比较忙。最近做了一个数据清洗框架,遇到了不少没见过的问题,一一解决之后,积累了不少经验,往后有空可以慢慢的分享出来。 对自由的渴望 ​ 我觉得做框架最麻烦的,就是各种情况都要考虑到,能兼容不同业务。 ​ 我这边遇到的一个问题,就是导入py文件。网上有不少花里胡哨的import方法,可以参考(我只在Python2下试过这些方法) ​ 但是,我觉得,没有一个是满足我的要求的。我希望能从电脑中任意一个位置导入一个函数或者一个类。出于强迫症,我不想把这些函数的路径放入sys.path里,感觉不够pythonic。而且文件多起来的话,感觉比较难以维护,涉及多个文件的import的更改。 ​ 以下是我的解决方案: python import pkgutil def get_obj(dir_path, mod_name, obj_name=None): """ dir_path: str mod_name: str """ importer = pkgutil.get_importer(dir_path) # 返回一个FileFinder对象 loader = importer.find_module(mod_name) # 返回一个SourceFileLoader对象 mod = loader.load_module() # 返回需要的模块 if obj_name: obj = getattr(mod, obj_name) return obj else: return mod ​ Python3中管理“import”的库是importlib,但是我怎么样都无法避免通过修改sys.path来使用importlib(可能还是积累不够吧)。接着,我找到了pkgutil包(属于Python3标准库),从源码看,它也是基于importlib。上面代码中的两个几个对象,也都是在importlib中定义的。 ​ 接下来我想对pkgutil.get_importer函数做个浅析。 ## 初识pkgutil.get_importer

带宽与吞吐量以及吞吐量对网络有什么影响

什么是网络吞吐量 在优化和排除网络性能故障时,测量吞吐量是评估网络连接不良或滞后原因的主要方法之一。简单来说,吞吐量是指通过网络成功传输的数据量。它是在一段时间内从源到目标的数据传输速率。 当网络用户访问应用程序或共享文件时,他们希望高速传输速率能够尽快获得所需的响应。高吞吐量意味着在生产率方面保持高效率。高吞吐率意味着网络每秒传输大量数据,表明网络性能健康。然而,低吞吐率表明网络没有按预期方式传输数据,从而导致网络性能不佳。这可能是由于数据包丢失、高延迟或抖动造成的。 网络吞吐量提供网络性能的平均数字,并以每秒比特数或每秒数据包数来衡量。通常,吞吐量是通过将大文件从源传输到收件人并测量完成传输所需的时间来衡量的。 什么是网络带宽 带宽表示网络的最大容量。简而言之,带宽衡量网络在一定时间范围内将数据包从源成功传输到目的地的速率。带宽以每秒比特数、每秒兆比特数或每秒千兆位为单位。带宽通常决定了网络可以处理的网络吞吐率有多高。 带宽给出了一段时间内可以传送的最大数据包数的理论规模。必须注意的是,高带宽并不总是导致高网络性能 - 更快的带宽不会提高网络速度,它只是使网络更快。带宽不会提高数据的传输速率或改变数据包的传输速度。管理员可以提高网络的带宽,但不会提高数据的传输速率,只会增加一次可以发送的数据量。 那么,如果带宽不能提高网络速度,为什么网络管理员监控它很重要?这是因为监视带宽可提供有关网络运行状况的信息。使用此信息,管理员可以检测任何带宽瓶颈并对其进行故障排除,从而提高网络速度。有了带宽,网络理论上更快,实际上并不更快。 网络带宽与网络吞吐量 网络吞吐量的动机是计算数据传输速率,而带宽的动机是计算网络的容量。如前所述,吞吐量是衡量实际数据包传递速率的实用标准,而带宽是测量潜在数据包传递的理论标准。 吞吐量和带宽的关键标准是数据包传输,但数据包丢失、延迟和抖动会对吞吐率产生负面影响。为了使数据包成功到达目的地,具有低延迟率至关重要。换句话说,高吞吐率依赖于低延迟率,而带宽受延迟的影响最小。 带宽以每秒比特数为单位;由于吞吐量由带宽决定,因此也以每秒比特数为单位。由于其理论特性,Bandwdth 通常不受物理障碍物的影响,但吞吐量很容易受到任何微小干扰的影响,例如网络流量、传输错误和网络设备。 带宽和吞吐量有什么区别 网络带宽决定了网络容量,即网络中有多少数据在一段时间内可能传输,而网络吞吐量则衡量在一段时间内实际传输的数据量。 如何计算带宽吞吐量 带宽吞吐量以每秒比特数计算,与网络带宽相同。 网络吞吐量对网络性能的影响 在大多数情况下,组织有足够的带宽来维持其网络的效率,并且在遇到任何缓慢问题时仍然对其进行升级。但是,缓慢或拥塞等网络事件可能是由于吞吐量低造成的。吞吐量是一个指标,告诉管理员在特定时间段内从源成功传输到目标的数据量。另一方面,带宽告诉您网络的最大数据传输容量。 换句话说,带宽告诉管理员理论数据包传递速率,而吞吐量显示数据包成功到达目的地的实际速率。网络的性能质量取决于到达目标的数据包数。 例如,如果数据中心购买 1Tbps 的网络带宽,则由于现有应用程序的工作流和访问网络的最终用户数量,性能可能会降级到 1Gbps。对此网络问题的典型响应是查看带宽容量。但是,ISP提供的带宽就足够了。但吞吐量将在1Gbps左右。因此,网络速度会很差,导致用户体验下降。 影响网络吞吐量的因素 虽然服务器内存、CPU 使用率和应用程序运行缓慢可能会导致网络瓶颈,但吞吐量低是由这些因素以及其他因素引起的,包括: 丢包:当数据通过网络发送时,一些数据包可能会成功到达目的地,而其他数据包可能会格式不正确,甚至在传输过程中丢失。这通常发生在网络流量很大时,因为数据包可能会在等待传送时被丢弃,从而导致吞吐量低。通过测量数据包丢失,管理员可以确定网络的可靠性以及它如何影响吞吐量。延迟:延迟是数据包到达目的地所花费时间的度量。因此,延迟越高,吞吐量越低。特别是在组织中的无线连接中,网络可用于非业务关键型应用程序或由许多同时使用的用户使用。在这些情况下,管理员需要一个带宽监控解决方案,该解决方案将显示每个端点的带宽使用情况统计信息。抖动:对于成长中的组织来说,保持视频和语音流量的可靠连接是一项挑战。造成这种情况的常见原因之一是数据包延迟变化,也称为抖动。当抖动很高时,响应时间不一致,导致视频质量失真和通话断断续续。这会自动降低网络质量并导致吞吐量降低。 不监控吞吐量的影响 可能会发生交通碰撞和视频通话延迟,从而破坏用户体验。管理员没有关于哪个终端节点消耗最多带宽的任何信息。管理员无法限制资源密集型应用程序的使用,从而使网络容易受到网络攻击。组织可能会面临无人值守的拥塞问题,从而导致 VoIP 连接不佳。管理员不知道任何性能问题的根本原因。 网络吞吐量监控的优势 管理员可以根据要求仅分配必要的带宽。吞吐量监控可帮助管理员通过对每个节点(包括接口和应用程序)进行实时流量监控,找到缓慢问题的根本原因。管理员可以消除进出网络的非必要流量。使用网络吞吐量工具,管理员可以检测任何异常流量行为并隔离问题。检查有线和无线设备的可靠性和可用性以处理富媒体和VoIP流量也更容易。 如何从低吞吐量中拯救网络 测量吞吐量是确定网络质量的最佳方式。那么,如何在不投入大量资金的情况下提高网络质量呢?需要有一个本地网络吞吐量监视解决方案,该解决方案提供对整个网络的可见性,并收集有关流量、速度和利用率的信息。有各种主动和被动网络吞吐量监视器可用于帮助管理员了解占用带宽的流量和应用程序。 NetFlow Analyzer 是一种吞吐量监控工具,可提供对网络流量的洞察,以帮助管理员识别最高用量者,并仅为业务关键型应用程序确定流量的优先级。可以监控网络吞吐量和任何端点的实时性能,并跟踪抖动、数据包丢失和延迟等性能指标。有了这些详细的见解,管理员就可以知道大多数网络问题是什么以及它们来自哪里。 监控设备、接口和对话的带宽使用情况。使用流量整形选项(如 QoS 和 ACL)管理带宽消耗。使用高级安全分析模块 (ASAM) 获取有关网络中任何异常流量行为的通知。使用 IP SLA 监视器插件确定网络是否以最佳级别运行。通过可预测网络需求的容量规划报告,仅投资于关键网络升级。使用基于 ML 的预测报告,利用可用的过去流量趋势数据,就组织的未来带宽要求做出明智的决策。 NetFlow Analyzer 吞吐量监控工具,可深入了解企业网络。它提供实时性能数据并监控抖动、数据包丢失和延迟等性能指标。借助这些详细的见解,管理员可以做出有关网络的明智决策,从而更快地检测和解决问题。

远程桌面的端口号是多少?

远程桌面(Remote Desktop)是一种用于远程访问和控制计算机的技术,它允许用户通过网络连接到远程计算机并以图形化界面进行操作。远程桌面使用的端口号通常是3389。 在Windows操作系统中,远程桌面协议(Remote Desktop Protocol,简称RDP)默认使用3389端口。当您启用远程桌面功能并允许其他计算机通过网络连接时,远程桌面会监听3389端口,等待远程连接的请求。 需要注意的是,由于安全性的考虑,为了防止潜在的网络攻击和入侵,建议在使用远程桌面时采取一些额外的安全措施。例如,您可以限制远程桌面访问的IP范围,或者通过防火墙进行端口转发以改变默认的3389端口号,从而增加系统的安全性。 总结起来,远程桌面的默认端口号是3389,但为了系统安全,您可以采取其他措施来保护远程桌面连接。当然,除了可以使用Windows远程控制电脑外,还可以使用一些专业的远程控制软件,例如:AnyViewer远程桌面、向日葵远程控制、ToDesk等。

redis分布式锁的原理与实现【分布式】

文章目录 前言一、什么是分布式锁1、原理2、场景 二、redis实现分布式锁1、redis实现分布式锁原理2、Lock函数的实现3、实际使用 三、redis实现分布式锁出现的经典问题死锁问题问题锁不住与删除别人锁问题锁不住问题解决(锁过期了,业务没执行完,需要续期): 前言 一、什么是分布式锁 1、原理 分布式锁是指在分布式系统中,为了实现协调和同步访问共享资源,而对分布式环境下的多个进程或线程进行同步的一种机制。它可以保证在分布式环境下各进程访问共享资源的时序一致性和互斥性,避免不同进程之间发生冲突。 常见的分布式锁实现方式有以下几种: 基于数据库的分布式锁:使用数据库的事务机制来实现分布式锁,通过在数据库插入一个唯一的记录来实现锁定,其他进程尝试并发获取锁时会阻塞等待。 基于缓存的分布式锁:利用缓存服务器来实现锁,比如使用 Redis 的 SETNX 或者 RedLock 算法来实现分布式锁,其中 RedLock 是一种多重锁定方式,能够在不同节点之间避免竞争条件。 基于 ZooKeeper 的分布式锁:使用 ZooKeeper 集群节点来实现分布式锁,ZooKeeper 提供了顺序节点以及 watch 机制来帮助实现分布式锁的获取和释放 2、场景 举个例子来说明分布式锁的应用场景:假设某个电商网站的秒杀活动每天只有固定的5000件特价商品,多个用户同时尝试秒杀商品时会引发超卖问题,需要使用分布式锁来解决。在多个用户尝试秒杀特价商品时,他们所在的应用进程都要向 Redis 缓存服务请求获取锁,只有一个请求可以成功获取到锁并执行秒杀操作,其他请求则会被阻塞。在执行完秒杀操作后,该进程会释放锁,使得其他请求可以获取锁并继续秒杀操作,从而避免了超卖问题的发生。这种场景下,分布式锁能够保证秒杀操作的互斥性和时序一致性,保障秒杀活动的公正性。 二、redis实现分布式锁 1、redis实现分布式锁原理 由于 Redis 是单线程的,可以保证 SETNX 命令与 DEL 命令的原子性操作,因此可以通过 Redis 的 SETNX 命令实现分布式锁。在分布式系统中,要保证同一时间只有一个客户端可以访问某个共享资源,因此需要使用分布式锁来协调各个客户端的访问。Redis 分布式锁实现简单、灵活,只需要使用 SETNX 命令设置锁,并设置有效期即可,无需复杂的代码实现。redis 支持的编程语言非常多,比如 Python、Java、Go、PHP 等,这就意味着可以在不同语言的应用程序中使用同样的锁来管理共享资源,从而避免了不同编程语言之间的锁管理差异性问题。 2、Lock函数的实现 通过 Redis 的 SET 命令设置了一个锁。获取 Redis 分布式锁时采用了一个基于协程和 select 的非阻塞性等待方式 具体步骤如下: 1、获取 Redis 连接池中的一个连接 conn。 2、使用 channel ch 和超时通道 timeoutCh 进行非阻塞性等待获取锁。

xss攻击 SQL注入

xss攻击 1.简介 XSS中文叫做跨站脚本攻击(Cross-site scripting),本名应该缩写为CSS。 如何判断有没有xss注入 我在数据交互的地方输入什么内容,则我输入的内容被实际展示出来,这样我们才认为没有被XSS注入。 XSS漏洞是什么? 是指攻击者利用Web服务器在页面中嵌入客户端脚本(通常是一段由JavaScript编写的恶意代码,),当信任此Web服务器的用户访问Web站点中含有恶意脚本代码的页面或打开收到的URL链接时,用户浏览器会自动加载并执行该恶意代码,从而达到攻击的目的。 xss漏洞形成的原因: 主要是因为web应用程序在接收用户输入时没有充分的过滤和验证。 注意:当应用程序没有对用户提交的内容进行验证和重新编码,而是直接呈现给网站的访问者时,就可能会触发XSS攻击。 XSS漏洞的危害 (1)窃取管理员帐号或Cookie。入侵者可以冒充管理员的身份登录后台,使得入侵者具有恶意操纵后台数据的能力,包括读取、更改、添加、删除一些信息。 (2)窃取用户的个人信息或者登录帐号,对网站的用户安全产生巨大的威胁。例如冒充用户身份进行各种操作。 (3)网站挂马。先将恶意攻击代码嵌入到Web应用程序之中。当用户浏览该挂马页面时,用户的计算机会被植入木马。 (4)发送广告或者垃圾信息。攻击者可以利用XSS漏洞植入广告,或者发送垃圾信息,严重影响到用户的正常使用。 2. xss类型 反射型XSS 当我们访问一个网站时,如果攻击者在该网站上设置一个恶意链接,此时当我们点击链接时,就会向攻击者服务器发送请求、返回对应的脚本,此时当浏览器加载脚本文件时,就会出现token或者cookie等信息泄露。 存储型XSS 存储型XSS( Stored xss Attacks),也是持久型XSS,比反射型XSS更具有威胁性。攻击脚本将被永久的存放在目标服务器的数据库或文件中。这是利用起来最方便的跨站类型,跨站代码存储于服务端(比如数据库中)。 攻击者在发帖或留言的过程中,将恶意脚本连同正常信息一起注入到发布内容中。随着发布内容被服务器存储下来,恶意脚本也将永久的存放到服务器的后端存储器中。当其他用户浏览这个被注入了 恶意脚本的帖子时,恶意脚本就会在用户的浏览器中得到执行 常见注入点 论坛、博客、留言板、网站的留言、评论、日志等交互处。 DOM型 DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。 基于DOM的XSS漏洞是指受害者端的网页脚本在修改本地页面DOM环境时未进行合理的处置,而使得攻击脚本被执行。在整个攻击过程中,服务器响应的页面并没有发生变化,引起客户端脚本执行结果差异的原因是对本地DOM的恶意篡改利用。 <html> <head> <title>DOM Based XSS Demo</title> <script> function xsstest() { var str = document.getElementById("input").value; document.getElementById("output").innerHTML = "<img src='"+str+"'></img>"; } </script> </head> <body> <div id="output"></div> <input type="text" id="input" size=50 value="" /> <input type="button" value="submit" onclick="xsstest()" /> </body> </html> 在这段代码中,submit按钮的onclick事件调用了xsstest()函数。而在xsstest()中,修改了页面的DOM节点,通过innerHTML把一段用户数据当作HTML写入到页面中,造成了DOM Based XSS。

Excel工具类 古天山

import java.io.Serializable; import java.util.List; public class ExcelData implements Serializable { private static final long serialVersionUID = 4444017239100620999L; // 表头 private List<String> titles; // 数据 private List<List<Object>> rows; // 页签名称 private String name; public List<String> getTitles() { return titles; } public void setTitles(List<String> titles) { this.titles = titles; } public List<List<Object>> getRows() { return rows; } public void setRows(List<List<Object>> rows) { this.rows = rows; } public String getName() { return name; } public void setName(String name) { this.

excel全家桶

<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> import java.io.Serializable; import java.util.List; public class ExcelData implements Serializable { private static final long serialVersionUID = 4444017239100620999L; // 表头 private List<String> titles; // 数据 private List<List<Object>> rows; // 页签名称 private String name; public List<String> getTitles() { return titles; } public void setTitles(List<String> titles) { this.titles = titles; } public List<List<Object>> getRows() { return rows; } public void setRows(List<List<Object>> rows) { this.rows = rows; } public String getName() { return name; } public void setName(String name) { this.

虚拟机ssh连接网络时显示未连接原因有哪些以及解决方案

虚拟机ssh连接网络时显示未连接原因有哪些以及解决方案 虚拟机SSH连接网络时显示未连接的原因有以下几种:以下是解决虚拟机SSH连接网络时未连接的常见解决方案: 虚拟机SSH连接网络时显示未连接的原因有以下几种: 1.网络配置问题:虚拟机的网络配置可能不正确,如IP地址、子网掩码、网关、DNS设置等。这可能导致虚拟机无法访问网络,从而导致SSH连接失败。 2.防火墙问题:虚拟机或主机上的防火墙可能会阻止SSH连接。这可能是由于防火墙规则设置不正确或防火墙软件未正确配置所致。 3.SSH服务问题:虚拟机可能未安装或未启动SSH服务,或SSH服务已被防火墙阻止。这可能导致SSH连接失败。 以下是解决虚拟机SSH连接网络时未连接的常见解决方案: 1.检查虚拟机的网络配置是否正确,包括IP地址、子网掩码、网关、DNS设置等。确保虚拟机的网络配置与主机所在网络的配置相匹配。 2.检查防火墙设置是否正确。可以禁用防火墙或修改防火墙规则以允许SSH连接。 3.确保虚拟机已安装并启动了SSH服务。可以使用命令“sudo service ssh status”检查SSH服务的运行状态,并使用命令“sudo service ssh start”启动SSH服务。 4.如果虚拟机使用的是NAT网络模式,则需要将虚拟机端口转发到主机端口。可以在虚拟机的网络设置中配置端口转发规则。 5.如果SSH连接仍然失败,可以尝试使用其他SSH客户端或协议进行连接,或者检查虚拟机和主机之间的网络连接是否正常。 总之,对于虚拟机SSH连接失败的问题,我们需要仔细检查网络配置、防火墙设置、SSH服务状态等,并根据具体情况采取相应的解决方案。 该博文为原创文章,未经博主同意不得转。 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/131273040

大模型训练技巧|单卡&多卡|训练性能评测

原视频:【单卡、多卡 BERT、GPT2 训练性能【100亿模型计划】】 此笔记主要参考了李沐老师的视频,感兴趣的同学也可以去看视频~ 视频较长,这里放上笔记,与大家分享~ 大模型对于计算资源的要求越来越高,如何在有限的资源下开展训练? 对于公司尤其是个人开发者来说,是一个非常有价值的问题。 本文将主要介绍大模型训练技巧,在单卡和多卡上的不同策略,以及对于性能的评测。 文章目录 1.GPU训练性能的测试脚本2.设置3.单卡性能内存消耗(这里指GPU的内存,即显存)实验现象性能优化1.kernal fusion操作:2.grad_accum3.丢弃中间结果 Megatron模型库优化总结 4.多卡性能数据并行张量并行ZeRO并行 5.结论1.使用足够大的批量大小。2.并行运算3.设备性能以上是针对大模型的一些训练技巧,相信可以给大家日常的训练带来一些有价值的建议~欢迎大家关注我~分享有用的AI算法笔记~ 1.GPU训练性能的测试脚本 2.设置 画红框的部分,会影响GPU的性能。 16位是半精度,32位是单精度,64位是双精度。bf16和fp16是精度。 optim是优化器。(adamw其实是一个多此一举的优化器。直接使用adam优化器就行。) grad_accum表示是否要做梯度的累加。 steps表示要跑多少次的模型更新。 deepspeed是一种跑分布式的方式。 计算量:TFLOPS huggingface是一个模型库 log文件 读取和解析log文件 核心是读取两个参数:gpu显存的峰值,和每秒读取的样本数 3.单卡性能 内存消耗(这里指GPU的内存,即显存) 1.模型的参数(大模型参数量大,占用空间大) 2.每一层的输出,即前向运算的中间计算结果,也叫activation 3.用的库,背后所占的内存。比如通信、cudnn 一般来说,占大头的是前两个。 注意:使用16位计算,并不能节省模型占用的空间。因为模型还是用32位来存的,模型的权重还是会转化为32位,进行更新。 但是如果使用16位运算,前向计算的中间结果(即activation)是16位的,这样就节省了空间。而且activation的大小和batchsize、序列长度、浮点运算量呈正比,所以如果使用16位运算,可以提高batchsize或者序列长度。 优先使用bf16,其次是fp16。 实验现象 fp32换为了fp16,性能并没有翻倍,说明还有别的地方在使用内存。 可能是内存带宽,造成了GPU性能的瓶颈。 性能优化 1.kernal fusion操作: 麻烦的python操作,用c++的for loop重写一遍。 目的:减少中间变量的读写过程,同时减少调用python运算产生的额外开销。 一般不需要自己重写,直接调用apex库就可以。 2.grad_accum 每次处理完一个batch,不直接更新梯度。而是计算多个batch,将梯度进行累加,再做梯度更新。 如果batchsize=10,grad_accum=4,那么会在总的10*4=40个batch后,才会进行梯度更新。 但是grad_accum或者总的批量大小不能太大,批量大小太大会影响算法的收敛。 做微调的时候,批量大小不能太大,因为数据集本来就不大;如果做预训练,批量大小可以大一些,因为数据集本身就很大。 3.丢弃中间结果 前向运算的时候,每一层的中间结果都会被保存。 可以将中间的一些结果丢弃,节省内存消耗。等运算完最后输出,进行梯度反传的时候,再重新进行前向计算,重新得到中间结果。 增加一部分计算量,换取一部分内存空间,至少能让模型跑起来。 当模型真的非常大的时候,这一操作特别有用!可以用来增加批量大小。 Megatron模型库 Megatron模型库性能好,是因为自己手写了很多算子: 优化总结 1.尽量增加批量大小(提高训练效率) 2.尽量使用16位的浮点数(降低中间结果占用内存数目) 3.使用Megatron这样的模型库(对重点算子,进行了手写,优化性能) 4.多卡性能 NV4表示两张卡使用四条nv-link进行两张GPU的连接。 使用一个脚本进行gpu之间的带宽的测试。 由于除了前向计算和反向计算,通信和模型更新还占用了新能。 所以一张GPU变为两张GPU,性能并没有翻倍。(只有一张GPU,并不需要GPU间的通信) 数据并行 没有使用nv-link,导致通信减慢,耗时明显增加。

chatgpt赋能python:Python跨平台:让你的代码无处不在

Python跨平台:让你的代码无处不在 Python是一种高级编程语言,它可以运行在各种平台上,包括Windows、Mac OS X、Linux等。这种跨平台的特性意味着无论你想在哪个操作系统上运行Python代码,Python都能满足你的需求。在本文中,我们将深入探讨Python跨平台的原理,以及如何利用它轻松地编写跨平台代码。 什么是Python跨平台 在计算机世界中,不同操作系统之间是彼此不兼容的。例如,Windows操作系统上的代码无法在Mac OS X上运行,反之亦然。然而,Python却可以通过解释器实现跨平台编程。Python解释器是Python代码的执行环境,它将Python代码转换为机器可以理解的代码,并在各个平台上运行。 Python跨平台的原理 要了解Python跨平台的原理,我们需要先了解一些基本概念。Python是一种解释性语言,因此它的代码不需要像编译型语言那样转换为机器代码。但是,不同操作系统对Python解释器的实现方式有所不同,因此Python代码在不同操作系统上的执行结果也可能有所不同。 这就是为什么Python解释器需要在不同平台上进行适当的调整以实现跨平台功能。Python的开发者们在Python解释器的编写中,使用了一些跨平台的技术,例如使用Unix风格的路径名,使用标准库来实现不同操作系统之间的文件操作等。这些技术和处理方式使得Python跨平台成为可能。 如何编写跨平台代码 编写跨平台代码的关键是要确保代码的可移植性。这意味着代码需要考虑到不同操作系统上的差异,并做相应的调整。以下是一些编写跨平台代码的技巧: 使用标准库 Python标准库提供了很多跨平台的接口。许多标准库模块都提供了适用于不同操作系统的代码。例如,os模块提供了处理文件系统和进程的工具,该模块的函数会根据平台的不同提供不同的行为。 避免使用操作系统特定的调用 一些操作系统特定的调用不适用于所有平台。例如,Windows上使用的一些API在Mac OS X上不适用。因此,在编写Python代码时,应该尽可能避免使用这些操作系统特定的调用。 使用跨平台的第三方库 许多第三方库都允许在不同平台上执行Python代码,这些库通常使用Python标准库来实现跨平台功能。 结论 Python的跨平台功能使得它成为一种流行的编程语言。无论你是在Windows、Mac OS X还是Linux上编写Python程序,Python都可以满足你的需求。因此,如果你正在寻找一种简单易用的跨平台编程语言,Python绝对是一个值得考虑的选择。 最后的最后 本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。 对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。 🧡AI职场汇报智能办公文案写作效率提升教程 🧡 专注于AI+职场+办公方向。 下图是课程的整体大纲 下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具 🚀 优质教程分享 🚀 🎄可以学习更多的关于人工只能/Python的相关内容哦!直接点击下面颜色字体就可以跳转啦! 学习路线指引(点击解锁)知识定位人群定位🧡 AI职场汇报智能办公文案写作效率提升教程 🧡进阶级本课程是AI+职场+办公的完美结合,通过ChatGPT文本创作,一键生成办公文案,结合AI智能写作,轻松搞定多场景文案写作。智能美化PPT,用AI为职场汇报加速。AI神器联动,十倍提升视频创作效率💛Python量化交易实战 💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。

linux下命令行播放wav方法

设置音量(最大为 127): amixer sset Headphone 101,101左声道开启设置: amixer sset ‘Left Output Mixer PCM’ on 右声道开启设置: amixer sset ‘Right Output Mixer PCM’ on播放音频文件: aplay lostyouth.wav

如何在 CentOS 7 / RHEL 7 上安装 OpenSSL 1.1.x

OpenSSL 是一个开源软件库,由用于实现传输层安全 (TLS) 和安全套接字层 (SSL) 协议以及其他加密功能(如签名、加密、解密和验证)的工具和库组成。操作系统和许多应用程序使用 OpenSSL 通过 Internet 提供安全通信。 CentOS 7 / RHEL 7 操作系统上可用的 OpenSSL 版本有点旧,如果需要较新的版本,某些应用程序会在编译时出错。 sudo yum -y install openssl openssl-devel openssl version 从输出中可以看出,可用版本是1.0.2。如果已安装,请在继续之前将其删除。 sudo yum -y remove openssl openssl-devel 确认已卸载。 openssl version 在 CentOS 7 / RHEL 7 上安装 OpenSSL 1.1.x OpenSSL 库提供了一套全面的密码功能,包括数字签名、对称和非对称加密、散列和证书管理。它还支持范围广泛的密码算法,包括 RSA、DSA、Diffie-Hellman 和椭圆曲线密码术。 安装构建 OpenSSL 所需的依赖项。 sudo yum -y groupinstall "Development Tools" 下载 OpenSSL 1.1.x 的源代码,其中x替换为所需的实际版本。 wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz --no-check-certificate 提取下载的文件。 tar xvf openssl-1.1.1t.tar.gz 导航到从文件提取创建的目录。

树莓派(raspbian2)上开发OpenCv_C++

树莓派[raspbian2]上开发OpenCv_C++ 背景故事一.首先就是搭建环境了1.该位置是环境下载地址2.远程连接3.安装OpenCV(如果使用的是上面的镜像,则不用安装) 二.代码示例1.打开摄像头2.采集图像 以上是2023-06-12的日志,接下来还有四天的实训!继续更新!今天遇到个很大的问题:使用MobaXterm连接A9开发板后,MobaXterm要么黑屏,要么就一直出现下面这样图片的情况,乱码的情况!三,全部代码 背景故事 最近刚好赶上学校的实训,学校请了一位大佬前来助阵,果然,有人带着你学比你自己闭门造车舒服多了,一直想学OpenCv,但是由于重重阻挠,Bug一个又一个,只看B站上的视频,让我两个多月只学会个搭环境!不说别的,linux树莓派上,OpenCV为啥打不开摄像头这个问题,我查遍了CSDN,百度,谷歌都没能找到问题,在老师这一句话就解决了,果然技术大牛很多,但是分享技术的大牛却很少,所以以后我要万分珍惜大佬分享的知识. 一.首先就是搭建环境了 1.该位置是环境下载地址 链接:https://pan.baidu.com/s/1EXEf5NP7D_SWVZ7E6g_fjg 提取码:8n01 以上为封装好的raspbian2,只需下载到电脑本地,然后在VM上,打开虚拟机即可,里面的OpenCV环境也已配好(当然后面的内容也会提到安装OpenCV的命令) 2.远程连接 我是用XShell远程连接虚拟机,因为虚拟的使用起来不是很方便. 我们要做的就是修改密码 sudo passwd pi #修改 pi 密码 #建议 用户名和密码都改成pi,这样好记一些,毕竟这个是我们学习用的 3.安装OpenCV(如果使用的是上面的镜像,则不用安装) sudo apt install libopencv-dev 二.代码示例 1.打开摄像头 #include<iostream> #include<opencv2/opencv.hpp> using namespace std; using namespace cv; int main(){ VideoCapture cam; cam.open(0); if(!cam.isOpened()){ cout<<"Failed to open camera!"<<endl; return -1; } cout<<"Success to open camera!"<<endl; return 0; } #编译 #上面的代码我命名为test.cpp g++ test.cpp -lopencv_videoio -lopencv_core -lopencv_highgui 执行—> 如果提示Failed to open camera!,依照下面的红圈进行点击!