- 博客(62)
- 收藏
- 关注
原创 ollama部署通义大模型公网访问
这是一个大模型平台,里面有很多大模型可选,不过考虑中文还是优选通义千问大模型,安装后可能命令行窗口会卡住很久不动也不下载,不过我在ollama界面中发现已经下载完成了(右下角隐藏任务栏),直接在命令行敲回车就进入交互界面了。如果你想要公网访问,那就需要内网穿透,内网穿透方案比较多,但我因为有云服务器公网ip,所以就直接自己搭建穿透服务了,首先在公网运行frps服务器,然后在本地运行frpc客户端,具体可以参考如下官方文档。# 身份验证,相当于连接穿透服务器的密码,与frps.toml中保存一致。
2024-10-27 13:50:19
963
原创 浏览器无法访问非80端口网页
由于安全原因,Firefox 取消了对非80端口的地址请求,只要使用80以外的端口号时这种问题就会出现。最近自己搞内网穿透,把本地的ollama web映射到服务器公网ip,但是刚开始没经验映射到了6666端口,局域网内都可以正常访问,但映射后一直不能访问,本来以为是frp有问题,结果排查很长时间也没找到问题。可是我直接使用curl是可以返回HTML内容的,说明映射没问题,服务也没问题,但浏览器访问解析就是有问题,搞了一天都搞不懂,后来忽然发现,浏览器报告的不是找不到服务,而是。
2024-10-27 10:49:16
773
原创 bios设置后cpu虚拟化仍禁用
最近在一台windows电脑上装docker desktop,但是提示虚拟化已禁用,打开任务管理器确实显示已禁用,然后进入bios设置intel virutalation tech设置为enable,但重启后依然显示cpu虚拟化与已禁用,一直找不到原因,查了cpu也支持虚拟化,本来都打算重刷bios或者安装ubuntu系统了,最后在官网找到了原因。于是我关了hyper v重启,wsl运行正常,显示虚拟化已启用,docker desktop启动正常,就这么修好了。
2024-10-25 22:22:16
973
原创 pyinstaller打包报错ModuleNotFoundError: No module named
如果引号不匹配,或者在字符串内部没有正确地转义引号,就会导致语法错误。字符串引号的不匹配会导致语法错误,从而在打包或运行时引发各种问题。尝试许久找不到真正的原因,只有最后一个真正帮助我打包后运行,报错了对应模块的文件中的引号问题。其实如果能在pyinstaller打包前直接用python解释器运行一遍就能检查出这个问题。真正的原因是,在 Python 中,字符串可以用单引号 (大概类似以下的单双引号使用情形,但我匹配错误了。),以及三重引号 (
2024-09-27 23:13:13
967
1
原创 Go和C语言实现类的相似之处
虽然Go语言和C语言在语法和特性上有很大不同,但在实现类和方法的基本理念上有一些相似之处。两者都使用结构体来封装数据,并通过函数或方法来实现行为。在C语言中,多态性通过函数指针实现,而在Go语言中则通过接口实现。
2024-07-17 21:15:00
1474
1
原创 Pyinstaller打包后__file__定位当前绝对路径错误
crontab要求在代码中写绝对路径但pyinstaller打包后的python读取的所在文件绝对路径是/tmp, 而不是当前路径所以分成两种情况,判断是否是打包后的文件,还是.py脚本获取当前文件夹,分情况获取路径。
2024-07-15 22:45:00
601
原创 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
356
原创 crontab定时任务不执行原因排查
如果问题依然无法解决,尝试创建一个简单的测试脚本,比如一个只打印当前时间的脚本,来验证cron是否能够正确执行基本任务。可以用如下脚本一分钟执行一次,查看结果很快,也很好验证。如果你以为这是同一个python3,反正都能运行就错了,因为pip list不一样,其中一个没安装各种模块,刚运行就退出,连日志都没有。- 确保脚本运行所需的所有依赖都已正确安装,并且cron用户有权限访问这些依赖,例如python多个版本。Crontab定时任务不执行可能有多种原因。但我后面发现还有另一个python。
2024-07-09 20:55:31
3465
原创 docker挂载卷和宿主机的文件夹有何区别
是一个命名的数据卷,my_data_volume就是名字,它不存在于宿主机中,只能通过docker volume命令看到,也就是只有容器才能访问,用于持久化服务的数据,相当于docker 开辟了一个特殊容器,这个容器只用来给别的容器当U盘。是一个绑定挂载,将宿主机上的路径(/path/on/host)挂载到容器内部(/path/in/container),这样容器内部可以访问这个路径,但其实文件在宿主机上,类似于容器内和宿主机同步盘,可以单向传递密钥之类的只读文件,也可以作为双向的长期log文件夹。
2024-06-22 13:30:00
663
原创 docker容器运行后快速退出
如果你经过dockerfile的折腾终于docker build成功镜像,而且没有任何报错,当你docker run之后却快速退出,不要怀疑,这不是因为你的容器有问题,而是错误地理解了容器。最后一条命令是一个无效的死循环,这样就可以保持容器一直运行,但这样启动的容器不会在命令行直接进入容器内部命令行,于是可以修改dockerfile如下。由于这个命令很快就执行完了,所以容器启动之后一闪而过就退出了,因为容器就是为了任务而生的,如果这个任务结束了,容器的使命也就结束了。# 执行脚本后进入交互命令行。
2024-06-19 21:30:00
601
原创 docker容器中连接宿主机mysql数据库
创建网桥启动容器的同时绑定网桥同时设置固定ip启动另一个服务使用网桥的好处就是容器之间是共享网络的,双向的,比–link的方式要灵活,而且容器内ip可以指定号,更加可控。但这样有个问题,数据库不能持久化,每次更新应用都要更更新数据库,而且每个应用都带个数据库会导致资源浪费,所以需要把数据库放在宿主机器,但这样宿主机和容器网络要相通。上面的报错是说连接上mysql,但访问密码错了,但我确实是用root用户访问的,仔细观察发现通过容器访问宿主机的用户并不是root,而是。完成以上命令就能访问了。
2024-06-18 22:20:08
2013
原创 java的反射和python的鸭子类型
Java的反射(Reflection)和Python的鸭子类型(Duck Typing)感觉相似但又说不出具体的细节,本文借助kimi试图给出总结。动态性:Java的反射允许程序在运行时查询、创建和修改类和对象的信息,这提供了一种动态性(注意java是静态类型的)。类似地,Python的鸭子类型也允许程序在运行时根据对象的行为(而不是类型)来确定其类型。灵活性:Java的反射可以用来操作未知的类,而Python的鸭子类型允许开发者编写不依赖于具体类的代码,只要对象具有相应的方法或属性。动态方法调用:Java
2024-06-10 12:12:32
488
原创 Decimal要从str转换以避免精度问题
最近遇到一个python的小数的问题,本来应该很简单的小于判断,无论如何都不正确,而且浮点小数都没问题,但decimal小数有问题,给我整蒙了,后来才发现是对decimal不了解所致,如果你还用float转decimal求解精确结果,那你一定要看看本文,以下是jupyter的python代码和运行结果。
2024-06-08 10:03:28
338
原创 linux中定时执行python脚本
上面标蓝是我中午吃饭电脑休眠的结果,任务直接停止了,这要是我电脑休眠了任务岂不是错过了,注意要将windows的休眠任务关掉才行,包括盖盖子休眠和长时间不操作休眠都要关。如果你有更复杂的软件依赖,环境设置等,建议通过ubuntu的基础镜像构建本地镜像并打包发布,这样给别人的时候可以一键运行。dockerfile如下。linux和wsl执行方法相同,windows也可以通过这种方法在linux中依照如下方法完成。crontab -e 后添加如下命令,每分钟执行。
2024-06-03 21:21:28
869
原创 电脑没电关机,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
4812
1
原创 windows定时执行python脚本,解决问题过程
由于需要一个每天定时执行的任务,所以需要定时启动,网上看了很多方法,感觉不能在python脚本种写个while true 定时执行,占资源不说还不可靠。最后考虑通过系统工具定时启动,发现linux中有crontab,windows中有定时任务程序。但我需要在window中执行,不过也可以在windows的wsl中测试一波。
2024-05-28 20:56:03
818
原创 云部署最简单python web
记得不要通过https访问,这样什么都看不到,因为Flask 是一个轻量级的 Web 应用框架,它默认只支持 HTTP 协议。但上面两个ip第一个是回环ip只能本机访问,第二个是局域网ip不能外部访问,而因为云主机只有一个主机,所以两个ip都不能访问。最近在玩云主机,考虑将简单的web应用装上去,通过广域网访问一下,代码很简单,所以新手几乎不会碰到什么问题。把这段代码放在云主机,安装flask之后通过python运行起来,这也很简单,成功之后会有如下提醒。这个web会开启一段时间玩。
2024-05-25 22:27:36
682
原创 宝塔面板修改端口后无法登入
=================================宝塔面板命令行====================================(26) 关闭面板ssl (19) 关闭面板登录地区限制 |(23) 关闭BasicAuth认证 (16) 修复面板(检查错误并更新面板文件到最新版) |去原来登录的网址登录就好, 或者执行以下命令会显示外网登录面板,腾讯云服务器没法内网登录。
2024-05-25 16:20:47
945
原创 WSL调用docker
我的windows电脑安装了两种WSL,一种是ubuntu(通过cmd的wsl install命令安装),一种是ubuntu24(通过应用商店)但无论我如何折腾,我都没办法直接通过点击红色的ubuntu24图标进入的wsl 命令行运行docker,结果总是。希望在wsl里面运行docker,首先要安装docker在WSL中使用,大部分人的第一想法肯定是用以下命令行安装(个人不推荐)我不知道上面的命令是否真的能安装,但反正我折腾了很长时间,最后没搞定wsl里的docker,所以我给出另一种方案。
2024-05-24 21:30:24
1349
原创 抽象类和接口类的区别
在设计类的结构时,选择抽象类还是接口取决于具体需求。如果需要定义一个基本的蓝图,并且共享代码,则可能会选择抽象类。如果需要定义一个可以由多种无关类实现的契约,则选择接口。抽象类(Abstract Class)和接口(Interface)是面向对象编程中用于实现抽象的两种主要方式。它们有一些相似之处,也有一些关键的区别。
2024-05-22 21:24:12
191
原创 python连接mysql数据库
先安装mysql数据库,并完成创建名为easy_test的数据库,通过以下命令在mysql命令行创建名为rf_ice_data的空表。安装python模块pip install sqlalchemy,pip install mysql。前往mysql数据库查看对应表格已经创建,并且有内容了。
2024-05-21 10:09:48
365
原创 基于GitLab、DockerHub 和 Rancher 的网页开发测试流程
GitLab是一个基于Web的Git仓库管理系统,可以用来存储和版本控制你的Web应用代码。:DockerHub是一个Docker容器镜像仓库,可以用来存储和共享Docker镜像。:Rancher是一个开源的容器管理平台,可以用来部署和管理Docker容器。
2024-05-17 21:38:16
477
原创 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
2857
原创 Python中logging模块的使用
如果需要将日志输出到其他地方,可以通过添加相应的处理器并配置它们来实现。此外,还可以通过创建自定义的处理器来将日志信息发送到任何需要的地方。模块提供了一个灵活的日志记录系统,用于将程序的输出信息分门别类地发送到不同的目的地。:将日志信息发送到系统日志服务,如Unix的syslog或Windows事件日志。:将日志信息发送到流,通常是标准错误输出,但也可以将流指定为标准输出或文件。:在Windows系统中,将日志信息写入NT的事件日志。:通过UDP数据报将日志信息发送到网络中的服务器。:将日志信息写入文件。
2024-05-15 16:01:57
345
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
624
1
原创 Java 对象序列化
序列化的定义 序列化:把对象转化为可传输的字节序列过程称为序列化。反序列化:把字节序列还原为对象的过程称为反序列化。如果光看定义我想你很难一下子理解序列化的意义,那么我们可以从另一个…把对象转化为可传输的字节序列过程称为序列化。把字节序列还原为对象的过程称为反序列化。序列化理解起来很简单 - 知乎。
2024-05-13 21:38:12
362
原创 有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
279
原创 Python创建可点击网页
继完成静态网页后,引入java script制作动态交互网页,交互逻辑就两个按钮,用于学习网页编程。在这个示例中,我们定义了两个路由:根路由:当用户访问网站时,将渲染一个包含按钮和段落元素的HTML页面。按钮的onclick事件绑定到JavaScript函数。/update路由:当函数被触发时,会发送一个GET请求到这个端点。服务器将返回一个JSON对象,其中包含一个消息。函数使用fetchAPI(现代浏览器中的Fetch API用于发起异步HTTP请求)向服务器发送请求,并在收到响应后更新页面上的。
2024-05-09 21:23:37
379
原创 用20行python写一个最简单的网站
先安装flask框架,cmd命令行 pip install flask,或pycharm -> setting -> project -> python interpreter 搜索安装。直接点击进入或复制地址浏览器进入,即可看到页面。
2024-05-09 18:57:35
8364
5
原创 Python自动化下载指定公开页面文件
3. 如果你有别的需求,要在其他网页下载内容,那么最重要的是找到对应的按钮,这个是整个代码中最难的部分,需要打开浏览器的开发者模式,选中左侧按钮,并找到对应按钮的html代码,如我找到的。然后直接运行就好,xlsx文件就下载到浏览器默认文件夹下了,这是政府公开文件,保存的文件名为。1. 需要先下载模拟点击浏览器的软件,并在代码中指定driver_path。这个过程可能需要多尝试才能找到正确的按钮,有必要时多求助AI助手。各主要国家贸易经济数据-新.xlsx。2. 然后安装python库。
2024-05-08 16:23:59
608
原创 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
193
原创 在windows上编写CUDA代码
WIN10下查看CUDA版本 & 显卡计算能力一、查看显卡支持的NVCUDA版本号二、查看自己显卡计算能力一、查看显卡支持的NVCUDA版本号1.在 开始菜单 或 右击桌面 打开 NVDIA控制面板2.点击 系统信息3.在弹出的 系统信息对话框 , 点击 组件在 3D设置 中第三项为 NVCUDA版本号二、查看自己显卡计算能力如果你的电脑硬件中安装了NVDIA显卡,则可以在NVIAD官网查到自己显卡的计算能力注:由于N卡分类较多,以及每类下有很多不同型号显卡_查看电脑cuda的数量有几个。
2024-04-07 22:38:44
1462
原创 python纯手写梯度下降的线性回归
机器学习已经学了挺长一段时间了,虽然也会一点pytorch,但是调库始终感觉隔靴搔痒,对于一些基本的原理似懂非懂,所以今天手写一个简单的线性回归,尝试一下手写数据(而非批量生成),人工求导(而非自动微分),for循环计算(而非numpy矩阵乘),最后发现也并不难。第八次运行结果已经可以看出趋势正在逐渐逼近,才更新参数8次就已经拟合得很好了(不过由于每次参数随机,看运气)。代码运行起来后会弹出拟合直线与散点图,手动关掉后开始下一轮运行,方便观察每轮更新的效果。,感兴趣的同学可以手算看看,挺简单。
2024-04-06 21:23:24
371
原创 Java的继承和多态,以及与C++和python的异同
在ShapeManager的draw方法中,shapes[i].draw()调用的是其对应动态类型的draw方法,这称之为方法的动态绑定。新建了三个shape,分别是一个圆、直线和带箭头的线,然后加到了shape manager中,然后调用manager的draw方法。最近开始了解java,并对比python和C++的异同做了简单的笔记,本文例子参考《Java编程的逻辑》。
2024-03-26 09:41:43
168
原创 解决GPU版PyTorch安装问题
需要注意nvidia-smi看到的CUDA版本可能和nvcc -V输出的版本不同,原因可能是我安装了好几次显卡驱动有点混乱,反正最后是以nvcc -V输出的CUDA版本为准,建议以已安装的CUDA版本去寻找对应版本的pyTorch,因为我试过安装指定版本的CUDA结果后来一直踩坑。打开官网下滑就能看到下面的界面,大部分教程建议下面的方式选择conda和对应的版本安装,但我尝试很多次都因为网络等原因无法安装,试过换源、搭梯子、改版本都不行,因此不推荐。注意我将最后的网址替换为了清华的源。
2024-02-21 20:15:08
1342
2
Modelsim中 no data
2022-10-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人