自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 Go和C语言实现类的相似之处

虽然Go语言和C语言在语法和特性上有很大不同,但在实现类和方法的基本理念上有一些相似之处。两者都使用结构体来封装数据,并通过函数或方法来实现行为。在C语言中,多态性通过函数指针实现,而在Go语言中则通过接口实现。

2024-07-17 21:15:00 1354 1

原创 Pyinstaller打包后__file__定位当前绝对路径错误

crontab要求在代码中写绝对路径但pyinstaller打包后的python读取的所在文件绝对路径是/tmp, 而不是当前路径所以分成两种情况,判断是否是打包后的文件,还是.py脚本获取当前文件夹,分情况获取路径。

2024-07-15 22:45:00 210

原创 WSL访问localhost数据库报错Access denied

使用以上代码连接数据库,在windows和wsl中使用相同的代码,window中正常运行,但wsl中报错pymysql.err.OperationalError: (1698, "Access denied for user 'root'@'localhost'"),问了ChatGPT也没解决。将代码的localhost改成以上代码执行结果查询到的ip就好。最后查询到执行以下结果,查询WSL的DNS解析IP。最后附上查询到的原因。

2024-07-13 10:15:00 142

原创 crontab定时任务不执行原因排查

如果问题依然无法解决,尝试创建一个简单的测试脚本,比如一个只打印当前时间的脚本,来验证cron是否能够正确执行基本任务。可以用如下脚本一分钟执行一次,查看结果很快,也很好验证。如果你以为这是同一个python3,反正都能运行就错了,因为pip list不一样,其中一个没安装各种模块,刚运行就退出,连日志都没有。- 确保脚本运行所需的所有依赖都已正确安装,并且cron用户有权限访问这些依赖,例如python多个版本。Crontab定时任务不执行可能有多种原因。但我后面发现还有另一个python。

2024-07-09 20:55:31 491

原创 docker挂载卷和宿主机的文件夹有何区别

是一个命名的数据卷,my_data_volume就是名字,它不存在于宿主机中,只能通过docker volume命令看到,也就是只有容器才能访问,用于持久化服务的数据,相当于docker 开辟了一个特殊容器,这个容器只用来给别的容器当U盘。是一个绑定挂载,将宿主机上的路径(/path/on/host)挂载到容器内部(/path/in/container),这样容器内部可以访问这个路径,但其实文件在宿主机上,类似于容器内和宿主机同步盘,可以单向传递密钥之类的只读文件,也可以作为双向的长期log文件夹。

2024-06-22 13:30:00 534

原创 docker容器运行后快速退出

如果你经过dockerfile的折腾终于docker build成功镜像,而且没有任何报错,当你docker run之后却快速退出,不要怀疑,这不是因为你的容器有问题,而是错误地理解了容器。最后一条命令是一个无效的死循环,这样就可以保持容器一直运行,但这样启动的容器不会在命令行直接进入容器内部命令行,于是可以修改dockerfile如下。由于这个命令很快就执行完了,所以容器启动之后一闪而过就退出了,因为容器就是为了任务而生的,如果这个任务结束了,容器的使命也就结束了。# 执行脚本后进入交互命令行。

2024-06-19 21:30:00 245

原创 docker容器中连接宿主机mysql数据库

创建网桥启动容器的同时绑定网桥同时设置固定ip​启动另一个服务​使用网桥的好处就是容器之间是共享网络的,双向的,比–link的方式要灵活,而且容器内ip可以指定号,更加可控。但这样有个问题,数据库不能持久化,每次更新应用都要更更新数据库,而且每个应用都带个数据库会导致资源浪费,所以需要把数据库放在宿主机器,但这样宿主机和容器网络要相通。上面的报错是说连接上mysql,但访问密码错了,但我确实是用root用户访问的,仔细观察发现通过容器访问宿主机的用户并不是root,而是。完成以上命令就能访问了。

2024-06-18 22:20:08 873

原创 java的反射和python的鸭子类型

Java的反射(Reflection)和Python的鸭子类型(Duck Typing)感觉相似但又说不出具体的细节,本文借助kimi试图给出总结。动态性:Java的反射允许程序在运行时查询、创建和修改类和对象的信息,这提供了一种动态性(注意java是静态类型的)。类似地,Python的鸭子类型也允许程序在运行时根据对象的行为(而不是类型)来确定其类型。灵活性:Java的反射可以用来操作未知的类,而Python的鸭子类型允许开发者编写不依赖于具体类的代码,只要对象具有相应的方法或属性。动态方法调用:Java

2024-06-10 12:12:32 448

原创 ipynb转markdown的简单方法

推荐在线转换,拖进去后下载就行,简单易操作。

2024-06-09 15:45:00 516

原创 Decimal要从str转换以避免精度问题

最近遇到一个python的小数的问题,本来应该很简单的小于判断,无论如何都不正确,而且浮点小数都没问题,但decimal小数有问题,给我整蒙了,后来才发现是对decimal不了解所致,如果你还用float转decimal求解精确结果,那你一定要看看本文,以下是jupyter的python代码和运行结果。

2024-06-08 10:03:28 204

原创 dockerfile,shell脚本,yaml文件如何配合

YAML 文件(通常指的是 Docker Compose 的。

2024-06-05 21:32:14 1126 1

原创 linux中定时执行python脚本

上面标蓝是我中午吃饭电脑休眠的结果,任务直接停止了,这要是我电脑休眠了任务岂不是错过了,注意要将windows的休眠任务关掉才行,包括盖盖子休眠和长时间不操作休眠都要关。如果你有更复杂的软件依赖,环境设置等,建议通过ubuntu的基础镜像构建本地镜像并打包发布,这样给别人的时候可以一键运行。dockerfile如下。linux和wsl执行方法相同,windows也可以通过这种方法在linux中依照如下方法完成。crontab -e 后添加如下命令,每分钟执行。

2024-06-03 21:21:28 446

原创 电脑没电关机,wsl和docker又挂了,附解决过程

provisioning docker WSL distros: terminating WSL distro "docker-desktop": exit code: 4294967295: running WSL command wsl.exe C:\windows\System32\wsl.exe --terminate docker-desktop: 不存在具有所提供名称的分发。打不开就算了,还没有任何报错,不知道到底哪里有问题了,那我就考虑重装吧,然后一整体就下面这样。算了先将就看着用用行不。

2024-06-01 17:08:01 1936

原创 windows定时执行python脚本,解决问题过程

由于需要一个每天定时执行的任务,所以需要定时启动,网上看了很多方法,感觉不能在python脚本种写个while true 定时执行,占资源不说还不可靠。最后考虑通过系统工具定时启动,发现linux中有crontab,windows中有定时任务程序。但我需要在window中执行,不过也可以在windows的wsl中测试一波。

2024-05-28 20:56:03 655

原创 云部署最简单python web

记得不要通过https访问,这样什么都看不到,因为Flask 是一个轻量级的 Web 应用框架,它默认只支持 HTTP 协议。但上面两个ip第一个是回环ip只能本机访问,第二个是局域网ip不能外部访问,而因为云主机只有一个主机,所以两个ip都不能访问。最近在玩云主机,考虑将简单的web应用装上去,通过广域网访问一下,代码很简单,所以新手几乎不会碰到什么问题。把这段代码放在云主机,安装flask之后通过python运行起来,这也很简单,成功之后会有如下提醒。这个web会开启一段时间玩。

2024-05-25 22:27:36 605

原创 宝塔面板修改端口后无法登入

=================================宝塔面板命令行====================================(26) 关闭面板ssl (19) 关闭面板登录地区限制 |(23) 关闭BasicAuth认证 (16) 修复面板(检查错误并更新面板文件到最新版) |去原来登录的网址登录就好, 或者执行以下命令会显示外网登录面板,腾讯云服务器没法内网登录。

2024-05-25 16:20:47 506

原创 WSL调用docker

我的windows电脑安装了两种WSL,一种是ubuntu(通过cmd的wsl install命令安装),一种是ubuntu24(通过应用商店)但无论我如何折腾,我都没办法直接通过点击红色的ubuntu24图标进入的wsl 命令行运行docker,结果总是。希望在wsl里面运行docker,首先要安装docker在WSL中使用,大部分人的第一想法肯定是用以下命令行安装(个人不推荐)我不知道上面的命令是否真的能安装,但反正我折腾了很长时间,最后没搞定wsl里的docker,所以我给出另一种方案。

2024-05-24 21:30:24 979

原创 抽象类和接口类的区别

在设计类的结构时,选择抽象类还是接口取决于具体需求。如果需要定义一个基本的蓝图,并且共享代码,则可能会选择抽象类。如果需要定义一个可以由多种无关类实现的契约,则选择接口。抽象类(Abstract Class)和接口(Interface)是面向对象编程中用于实现抽象的两种主要方式。它们有一些相似之处,也有一些关键的区别。

2024-05-22 21:24:12 165

原创 python连接mysql数据库

先安装mysql数据库,并完成创建名为easy_test的数据库,通过以下命令在mysql命令行创建名为rf_ice_data的空表。安装python模块pip install sqlalchemy,pip install mysql。前往mysql数据库查看对应表格已经创建,并且有内容了。

2024-05-21 10:09:48 303

原创 基于GitLab、DockerHub 和 Rancher 的网页开发测试流程

GitLab是一个基于Web的Git仓库管理系统,可以用来存储和版本控制你的Web应用代码。:DockerHub是一个Docker容器镜像仓库,可以用来存储和共享Docker镜像。:Rancher是一个开源的容器管理平台,可以用来部署和管理Docker容器。

2024-05-17 21:38:16 415

原创 WSL安装错误

重启之后,蓝色图标的wsl,红色图标的ubuntu和ubuntu 24就都能打开了(虽然搞不懂区别,进入之后看起来都是同一个),但是是在power shell中打开,而不是红色的ununtu窗口。很早之前装过wsl,现在重装系统后又忘了,从microsoft store里面安装了ubuntu 24, 开启windows的linux虚拟机,虚拟机平台,又多开了一个hyperv(注意这是错误的,不用开)重启后倒是打开了,但花了几分钟进入wsl,让我重命名,但显示拒绝访问。执行 wsl --update。

2024-05-17 17:48:26 1154

原创 Python中logging模块的使用

如果需要将日志输出到其他地方,可以通过添加相应的处理器并配置它们来实现。此外,还可以通过创建自定义的处理器来将日志信息发送到任何需要的地方。模块提供了一个灵活的日志记录系统,用于将程序的输出信息分门别类地发送到不同的目的地。:将日志信息发送到系统日志服务,如Unix的syslog或Windows事件日志。:将日志信息发送到流,通常是标准错误输出,但也可以将流指定为标准输出或文件。:在Windows系统中,将日志信息写入NT的事件日志。:通过UDP数据报将日志信息发送到网络中的服务器。:将日志信息写入文件。

2024-05-15 16:01:57 307 1

原创 Dockfile和YAML文件的区别

(通常与Docker Compose相关):YAML(Yet Another Markup Language)是一种数据序列化格式,它在Docker中常用于定义多容器Docker应用程序的配置。Dockerfile中的每一行通常对应一个Docker镜像层,定义了基础镜像、环境变量、依赖库、应用程序源代码、构建过程、启动命令等。总结来说,Dockerfile用于定义单个Docker镜像的构建过程,而YAML文件(在使用Docker Compose时)用于定义整个多容器应用程序的配置。服务则直接使用了官方的。

2024-05-14 10:12:02 378 1

原创 浅谈java,python,c++的差异

Java,Python和C++是三种常见的编程语言,它们在很多方面有着不同的特点。

2024-05-13 21:56:06 1158 2

原创 Java 对象序列化

序列化的定义 序列化:把对象转化为可传输的字节序列过程称为序列化。反序列化:把字节序列还原为对象的过程称为反序列化。如果光看定义我想你很难一下子理解序列化的意义,那么我们可以从另一个…把对象转化为可传输的字节序列过程称为序列化。把字节序列还原为对象的过程称为反序列化。序列化理解起来很简单 - 知乎。

2024-05-13 21:38:12 341

原创 有Python 2和3,但只给Python 2安装模块

首先,你需要确认系统中安装了Python 2的pip。,你需要确保使用Python 2的pip版本来执行安装命令。通常,Python 2的pip可以通过。系统中同时安装了Python 2和Python 3,并且你想要为Python 2的pip安装。使用Python 2的pip安装。

2024-05-10 18:05:27 224

原创 Python创建可点击网页

继完成静态网页后,引入java script制作动态交互网页,交互逻辑就两个按钮,用于学习网页编程。在这个示例中,我们定义了两个路由:根路由:当用户访问网站时,将渲染一个包含按钮和段落元素的HTML页面。按钮的onclick事件绑定到JavaScript函数。/update路由:当函数被触发时,会发送一个GET请求到这个端点。服务器将返回一个JSON对象,其中包含一个消息。函数使用fetchAPI(现代浏览器中的Fetch API用于发起异步HTTP请求)向服务器发送请求,并在收到响应后更新页面上的。

2024-05-09 21:23:37 304

原创 用20行python写一个最简单的网站

先安装flask框架,cmd命令行 pip install flask,或pycharm -> setting -> project -> python interpreter 搜索安装。直接点击进入或复制地址浏览器进入,即可看到页面。

2024-05-09 18:57:35 8175 5

原创 Python自动化下载指定公开页面文件

3. 如果你有别的需求,要在其他网页下载内容,那么最重要的是找到对应的按钮,这个是整个代码中最难的部分,需要打开浏览器的开发者模式,选中左侧按钮,并找到对应按钮的html代码,如我找到的。然后直接运行就好,xlsx文件就下载到浏览器默认文件夹下了,这是政府公开文件,保存的文件名为。1. 需要先下载模拟点击浏览器的软件,并在代码中指定driver_path。这个过程可能需要多尝试才能找到正确的按钮,有必要时多求助AI助手。各主要国家贸易经济数据-新.xlsx。2. 然后安装python库。

2024-05-08 16:23:59 550

原创 fscanf读入数据位宽不匹配导致相邻内存被覆写修改

j输出了7次,且前四次为0。最后意识到是fscanf虽然只读入了两个16进制字符共8bit数据,但却以int类型写入了byteData的地址,导致栈内相邻的变量j被覆盖了。虽然这种方法很简单粗暴,但证明了no_used_data在第一次fscanf执行的时候被写覆盖了 ,而且j只循环了4次,读入的结果也是和hex_data的文件中是相同的。最近写一个C代码,循环读取文件中的16进制数据,读入的结果虽然没问题,但循环变量居然在每次循环中不更新,震惊我一下午,最后猜测是数据位宽导致的不可见的内存覆盖。

2024-04-08 13:22:03 140

原创 在windows上编写CUDA代码

WIN10下查看CUDA版本 & 显卡计算能力一、查看显卡支持的NVCUDA版本号二、查看自己显卡计算能力一、查看显卡支持的NVCUDA版本号1.在 开始菜单 或 右击桌面 打开 NVDIA控制面板2.点击 系统信息3.在弹出的 系统信息对话框 , 点击 组件在 3D设置 中第三项为 NVCUDA版本号二、查看自己显卡计算能力如果你的电脑硬件中安装了NVDIA显卡,则可以在NVIAD官网查到自己显卡的计算能力注:由于N卡分类较多,以及每类下有很多不同型号显卡_查看电脑cuda的数量有几个。

2024-04-07 22:38:44 1102

原创 python纯手写梯度下降的线性回归

机器学习已经学了挺长一段时间了,虽然也会一点pytorch,但是调库始终感觉隔靴搔痒,对于一些基本的原理似懂非懂,所以今天手写一个简单的线性回归,尝试一下手写数据(而非批量生成),人工求导(而非自动微分),for循环计算(而非numpy矩阵乘),最后发现也并不难。第八次运行结果已经可以看出趋势正在逐渐逼近,才更新参数8次就已经拟合得很好了(不过由于每次参数随机,看运气)。代码运行起来后会弹出拟合直线与散点图,手动关掉后开始下一轮运行,方便观察每轮更新的效果。,感兴趣的同学可以手算看看,挺简单。

2024-04-06 21:23:24 327

原创 Java的继承和多态,以及与C++和python的异同

在ShapeManager的draw方法中,shapes[i].draw()调用的是其对应动态类型的draw方法,这称之为方法的动态绑定。新建了三个shape,分别是一个圆、直线和带箭头的线,然后加到了shape manager中,然后调用manager的draw方法。最近开始了解java,并对比python和C++的异同做了简单的笔记,本文例子参考《Java编程的逻辑》。

2024-03-26 09:41:43 145

原创 C++ malloc和new的区别

malloc和new。

2024-03-19 09:20:58 393

原创 解决GPU版PyTorch安装问题

需要注意nvidia-smi看到的CUDA版本可能和nvcc -V输出的版本不同,原因可能是我安装了好几次显卡驱动有点混乱,反正最后是以nvcc -V输出的CUDA版本为准,建议以已安装的CUDA版本去寻找对应版本的pyTorch,因为我试过安装指定版本的CUDA结果后来一直踩坑。打开官网下滑就能看到下面的界面,大部分教程建议下面的方式选择conda和对应的版本安装,但我尝试很多次都因为网络等原因无法安装,试过换源、搭梯子、改版本都不行,因此不推荐。注意我将最后的网址替换为了清华的源。

2024-02-21 20:15:08 544 1

原创 纯Python双人乒乓球游戏, 简单上手无环境依赖

不到200行python代码的双人小游戏

2023-12-31 16:25:05 441

原创 TCL脚本空格敏感

结果一直没找到原因,文心一言居然没看出来,chatgpt看出来了但没说明白,尝试如下代码也不行。在Tcl中,空格在脚本中有着重要的作用,因为Tcl的解析是基于空格的。空格用于分隔命令和参数。每个单词(命令或参数)由空格或其他空白字符分隔。

2023-12-06 10:03:23 260

原创 python读文件字符串末尾空格,使用strip()删除

使用strip方法删除字符串中不可见的空格等

2023-12-04 09:46:50 151

原创 你可能误解了Verilog中的x态

说一个真实项目中的案例:同学在仿真开始的一段时间里时看到某enable使能信号是x态,此时模块的所有输出也都是x态,因为都是x态也没有信号变化,他就以为模块没有正常开始工作,所以只关注了复位后的模块状态。既然实际并不存在x态,为什么我们还需要重视并排除x态呢,因为x态代表了电路有50%的可能性在高电平,有50%的可能性在低电平,如果你的芯片中有一个63位的控制寄存器,那么你的芯片就会随机进入1/(2^64)的状态中一种,俗称跑飞了。另外,“===”和“==”在关于x态的判断中也有区别,应当留意。

2023-11-06 19:00:37 1216 1

原创 linux终端c语言游戏:吃豆子

printf("你撞墙了!//游戏初始化-----给英雄位置、豆子的位置、地图初始化。//英雄是否吃到豆子,豆子是否需要重新生成。//根据键盘输入更改英雄的位置。//设置键盘不等待回车。//英雄撞墙的处理方式。//显示地图就可以了。//二位数组打印输出。

2023-10-14 22:13:13 168 1

IC大厂面试经历(超15家),非题目

IC大厂面试经历(超15家),非题目

2023-04-28

Modelsim中 no data

2022-10-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除