首页
关于
友链
Search
1
ESXI 一些功能调整
755 阅读
2
SoftEther 客户端篇
665 阅读
3
天翼云网关3.0/4.0超管密码
619 阅读
4
SoftEther 服务端篇
533 阅读
5
Centos安装个人网盘Alist v3教程
507 阅读
奇思妙想
代码相关
软件分享
游戏分享
游戏相关
我的家庭影院
登录
Search
标签搜索
python
git
命令
esxi
SoftEther
linux
apscheduler
在线
ai
list
列表
idm
激活码
Charles
pdf
免安装
鲁大师
图片查看器
蜂蜜浏览器
honeyview
哥特式
累计撰写
116
篇文章
累计收到
15
条评论
首页
栏目
奇思妙想
代码相关
软件分享
游戏分享
游戏相关
我的家庭影院
页面
关于
友链
搜索到
116
篇与
的结果
2026-05-25
ai使用的工具
Claude Code / Codex MCP 与 Plugins 配置指南本文档整理我当前使用的 MCP 和 Plugins,方便后续查阅、维护和扩展。适用环境:Claude Code(终端)+ Codex(终端)1. MCP1.1 codegraph — 代码智能知识图谱提供代码的 符号、依赖关系和文件结构 索引查询。项目地址:https://github.com/colbymchenry/codegraph包名:@colbymchenry/codegraph能力一览工具作用典型问题codegraph_context按任务描述返回入口、关键符号、调用关系和代码上下文"这个功能怎么实现?"codegraph_search按名称搜索符号"有没有 login 方法?"codegraph_node查看单个符号详情"UserService 在哪?"codegraph_explore一次查看多个相关符号/文件源码"认证相关函数一起看"codegraph_callers查询"谁调用了这个符号""谁在用这个函数?"codegraph_callees查询"这个符号调用了谁""函数内部依赖了什么?"codegraph_trace追踪从 A 到 B 的调用路径"请求怎么走到数据库?"codegraph_impact评估修改某个符号的影响范围"改这个方法会波及哪?"codegraph_files查看文件树和符号分布"项目目录结构?"codegraph_status查看索引状态"索引是否正常?"适用场景阅读陌生项目时快速建立结构认知调试时梳理调用链重构前评估影响面比 grep + Read 更快地定位关键实现安装# 第一步:全局安装 npm install -g @colbymchenry/codegraph # 第二步:运行,自动配置 Claude Code 和 Codex npx @colbymchenry/codegraphnpx @colbymchenry/codegraph 会自动向 Claude Code 和 Codex 的配置文件写入 MCP server,无需手动编辑 settings.json。更新npm install -g @colbymchenry/codegraph@latest npx @colbymchenry/codegraph更新后重新执行一次自动配置,确保 Claude Code / Codex 的配置与新版本一致。卸载npm uninstall -g @colbymchenry/codegraph卸载后还需手动清理 Claude Code 和 Codex 配置文件中对应的 MCP server 条目:~/.claude/settings.json → 删除 mcpServers.codegraph验证在 Claude Code 会话中调用 codegraph_status,能正常返回即说明接入成功检查 ~/.claude/settings.json 中是否包含 codegraph 的 MCP server 配置使用方式初始化索引codegraph init -i用途:在当前项目中初始化 codegraph 索引为后续的符号查询、调用链分析、影响面分析建立本地数据适用场景:第一次在某个仓库中使用 codegraph新仓库还没有建立索引时建议:进入项目根目录后执行初始化完成后,再在 Claude Code 或 Codex 中使用相关 MCP 工具同步索引codegraph sync用途:同步当前项目代码到 codegraph 索引在代码新增、修改较多后,刷新索引内容适用场景:拉取新代码后大量修改代码后发现查询结果与当前代码不一致时建议:在重要改动后执行一次如果怀疑索引过旧,优先先执行 codegraph sync使用建议场景推荐工具理解某个功能怎么实现codegraph_context → codegraph_explore追踪调用链codegraph_trace → codegraph_callers / codegraph_callees评估改动影响codegraph_impact → codegraph_callers按名字定位符号codegraph_search → codegraph_node2. Plugins2.1 Superpowers — 终端 Agent 工作流技能包如果你平时会让 Claude Code 或 Codex 帮你做多步骤开发任务,比如先梳理需求、再写计划、接着实现、验证、收尾,那么 Superpowers 这一组 skills 会非常实用。Superpowers 的价值不在某一个单独的 skill,而在于它把“从想法到交付”的整条工作流拆得更清楚。你可以把它理解成一套给终端 Agent 使用的方法论增强包。主要 Skills流程与规划这组更适合在真正动手之前理清需求、方案和执行路径。Skill作用superpowers:using-superpowers总控规则,约束 skill 使用流程superpowers:brainstorming需求梳理、方案设计前的脑暴superpowers:writing-plans多步骤任务的实施计划superpowers:executing-plans按计划执行并检查superpowers:subagent-driven-development多子 agent 协作开发superpowers:dispatching-parallel-agents并行分派独立任务开发与调试这组主要用于具体编码、排查问题,以及在完工前确认结果是否靠谱。Skill作用superpowers:test-driven-developmentTDD 工作流superpowers:systematic-debugging系统化排查 bugsuperpowers:verification-before-completion完工前验证评审与收尾这组适合用在代码审查、处理反馈和完成分支收尾这些阶段。Skill作用superpowers:requesting-code-review主动请求代码审查superpowers:receiving-code-review处理收到的 review 意见superpowers:finishing-a-development-branch分支收尾:合并、提 PR配套增强这组更像工作流补充包,适合在协作和执行方式上继续增强 Claude Code 的能力。Skill作用superpowers:using-git-worktreesgit worktree 隔离工作区superpowers:writing-skills编写/修改 skill 本身安装如果你想把这套工作流 skills 加到 Claude Code 里,直接执行下面这条命令即可:# Claude Code claude plugins install superpowers安装完成后,相关 skills 就会出现在可用技能列表里。对我这种主要在 Claude Code / Codex 终端里做开发的人来说,这个插件更像是把常用工作流预先整理好了。更新后续如果插件有更新,可以直接执行:claude plugins update superpowers更新后通常不需要额外处理;如果当前会话没有立即识别到变化,重新打开 Claude Code 会话再检查一次即可。卸载如果后面不再需要,也可以直接卸载:claude plugins uninstall superpowers验证装好之后,最直接的检查方式就是在 Claude Code 会话里输入 /superpowers:brainstorming。只要能正常触发,就说明插件已经安装成功并且可以使用。使用建议和 taste-skill 那种偏场景型的插件不同,Superpowers 更适合按“工作流阶段”组合使用。也就是说,它通常不是只调用一次,而是从需求梳理一路串到实现、验证和收尾。如果你想先快速建立使用直觉,可以直接参考下面这几组常见搭配:场景推荐组合新功能开发brainstorming → writing-plans → test-driven-development → verification-before-completion修 bugsystematic-debugging → verification-before-completion代码审查requesting-code-review / receiving-code-review分支收尾finishing-a-development-branch2.2 taste-skill — 设计与审美增强 skill 集合如果你平时会让 Claude Code 帮你重做页面、还原截图、生成前端视觉方向,或者整理一份更像样的设计调研,那么 taste-skill 这组 skills 会比较顺手。它不是单一 skill,而是一套偏 设计审美、前端表达、图像生成、调研辅助与配置增强 的工具集合。我的理解是,可以把它当成给 Claude Code 额外加上的一层“设计感”和“表达力”增强包。项目地址:https://github.com/Leonxlnx/taste-skill主要 Skills设计审美类这组更适合用在页面重构、视觉升级和风格探索上。Skill作用design-taste-frontend用更高审美标准重做前端页面与落地页design-taste-frontend-v1design-taste-frontend 的早期版本,可用于兼容旧习惯high-end-visual-design强化页面的高级感、层次和视觉表达industrial-brutalist-ui生成工业 / brutalist 风格界面minimalist-ui生成极简风格界面redesign-existing-projects基于现有项目做结构化重设计stitch-design-taste辅助整理设计方向与前端表达风格brandkit整理品牌元素与视觉基调gpt-taste辅助提升生成结果的设计品味图像 / 页面生成类这组适合做截图还原、参考图转页面,或者快速生成一个前端视觉方向。Skill作用image-to-code根据截图、参考图生成页面代码imagegen-frontend-web生成 Web 前端视觉稿 / 页面方向imagegen-frontend-mobile生成移动端界面视觉稿 / 页面方向研究与辅助类这组偏“把事做完整”,适合做调研、验证、运行项目以及查询 Claude / Anthropic 相关资料。Skill作用deep-research进行多来源调研、核对并输出带引用结论verify运行并验证改动是否真的生效run启动项目并观察页面 / 功能表现claude-api查询 Claude API / Anthropic SDK / 模型相关信息配置与效率类如果你想长期优化 Claude Code 的使用体验,这组会更有价值。Skill作用update-config修改 Claude Code 配置、权限、环境变量或 hookskeybindings-help自定义 Claude Code 快捷键fewer-permission-prompts减少常见只读操作的权限提示安装如果你想把这组 skills 直接加到 Claude Code 里,最简单的方式就是执行下面这条命令:npx skills add https://github.com/Leonxlnx/taste-skill我这里用的就是这种安装方式。执行完成后,仓库里提供的 skills 就会被加到当前环境里,后面可以直接按名字调用。更新后续如果仓库有更新,通常重新执行一次同样的命令就够了:npx skills add https://github.com/Leonxlnx/taste-skill如果本地已经存在这个来源的 skills,重新添加通常就会刷新到最新内容。要是更新后当前会话还没识别到新内容,重新打开 Claude Code 会话再试一次就行。卸载如果后面不想继续用了,可以在 skills 管理里把这个 GitHub 来源安装的 skills 移除掉。这里我先不把卸载命令写死,主要是避免和你本地 skills 工具的版本行为不一致;如果后面确认了统一命令,再补进来会更稳妥。验证装好之后,最直接的检查方式就是随便触发一个你会用到的 skill,例如:/design-taste-frontend/deep-research只要能正常触发,就说明这组 skills 已经接入成功。如果刚安装完还没有生效,重开当前会话再试一次即可。使用方式这组 skills 最常见的用法有两种。第一种是直接在 Claude Code 里用 /skill-name 触发,比如:/design-taste-frontend /high-end-visual-design /image-to-code /deep-research /update-config第二种是直接在自然语言需求里点名,让 AI 按指定 skill 的思路来做,例如:“用 design-taste-frontend 帮我重做这个落地页”“用 image-to-code 根据这张截图生成页面”“用 deep-research 帮我做一份带来源的调研”“用 update-config 帮我调整 Claude Code 配置”如果你是第一次装这组 skills,我建议优先从自己最常见的场景开始试,而不是一口气把所有 skill 都过一遍。这样更容易建立直觉:到底哪个 skill 更适合你现在的工作流。使用建议如果你只是想先快速判断“我现在该用哪个”,可以直接按下面这张表来选:场景推荐 Skill重做官网 / 落地页design-taste-frontend / high-end-visual-design做极简或特定风格页面minimalist-ui / industrial-brutalist-ui根据截图还原页面image-to-code生成前端视觉稿imagegen-frontend-web / imagegen-frontend-mobile做资料调研并整理来源deep-research调整 Claude Code 配置update-config修改快捷键keybindings-help3. Superpowers 与 Codegraph 配合使用Superpowers 决定“应该怎么做”Codegraph 帮助“快速看清代码结构”场景流程做功能前brainstorming → codegraph_context → writing-plans修 bug 时systematic-debugging → codegraph_trace → verification-before-completion改公共模块codegraph_impact → writing-plans → requesting-code-review
2026年05月25日
3 阅读
0 评论
0 点赞
2026-05-19
Obsidian接入博客
Halo下载halo插件,启用之后,配置相关信息,但是需要注意的是,站点后面不要/结尾个人令牌的权限需要包含文章管理配置项站点名称:站点的名称,可选。站点 URL:站点的 URL,例如 https://example.com。个人访问令牌: 你的 Halo 站点的个人访问令牌,需要具有 文章管理 权限。之后左侧这里会展示快捷按钮,可以快速同步到halo发布之后,需要手动编辑一下这个,否则默认是待发布状态Typecho这个有点复杂,博客上需要下载安装一个插件把文件同步到 Typecho 中 Typecho-API: Typecho Restful功能:发布文章添加分类/标签浏览文章保存文章到本地配置项Host: typecho 的地址/index.php/apiToken: 插件安装之后设置 tokenUser:上面两项设置之后会自动获取用户,选择一个操作用户配置好后,左侧也会多出一个对应的标签,可以快速发布文章
2026年05月19日
10 阅读
0 评论
0 点赞
2026-05-14
svn转换成git
将svn转换成git初始化 git-svn# 从svn上拉取 git svn clone <完整的SVN URL> hours-back-git # 直接使用完整的项目 URL git svn init svn://xxxx拉取 SVN 历史# 先拉取最新版本(快速) git svn fetch -r HEAD # 如果需要全部历史,去掉 -r HEAD 即可第 4 步:查看远程分支git branch -r你应该会看到类似 git-svn 或 remotes/git-svn 的引用。第 5 步:重置到 SVN 版本(保留本地修改)bash根据第4步看到的实际名称调整git reset --mixed git-svn或者如果分支名是 remotes/git-svn:git reset --mixed remotes/git-svn第 6 步:查看状态git status现在应该能看到你所有的本地修改(显示为待提交状态)。常用命令速查表操作命令查看当前分支git branch创建并切换分支git checkout -b 分支名切换分支git checkout 分支名查看状态git status查看改动内容git diff添加文件git add 文件名添加所有文件git add .本地提交git commit -m "说明"查看提交历史git log --oneline合并分支(保留历史)git merge 分支名合并分支(压缩成一个)git merge --squash 分支名拉取 SVN 更新git svn rebase提交到 SVNgit svn dcommit查看相对 SVN 的改动git log git-svn..HEAD --oneline
2026年05月14日
8 阅读
0 评论
0 点赞
2026-05-06
画图指令收集
画图 请观察照片中的元素、并为每个物件加上有意义的手绘风注解。使用中文标注,请填写照片中的物品(例:披萨、汽水 [描写规则】 • 使用像白色笔画的细线手绘线条 • 一笔画风格、随性、略带不均匀感 • 沿着物件外围加上描边轮廓 • 用箭头或虛线做出视线引导 [文字规则】 • 手写风格字体(日系可爱感) • 句子简短、像自言自语的小碎念 • 语气偏日记感、带一点情绪[注解生成规则】 • 饮料 一> 味道、温度、心情(例:清爽、微甜、刚刚好) • 食物 一> 口感、好吃程度(例:松软、超好吃) • 空间 一> 氛围(例:很放松、喜欢这种感觉) • 整体 一> 一句总结(例:今天有点幸福~)[装饰) • 适度加入热气、闪光、爱心、星星、小表情等元素。不要过度装饰,保留空白空间。结果:
2026年05月06日
12 阅读
0 评论
0 点赞
2026-02-05
大航海探险物语
1. 铁匠铺锻造某个东西20级2. 宠物中心好像是3个3级普通宠物:改宠不可孵化的宠物2.2 宠物体型宠物分为S(small)、M(medium)、L(large)三种体型,分别代表小、中、大。船团等级决定了可参与战斗的宠物限制:S、M体型...无条件L体型…船团等级20以上S改体型...船团等级20以上M改体型...船团等级30以上L改体型...船团等级50以上L极体型...船团等级70以上S真体型…船团等级20以上M真体型…船团等级40以上L真体型…船团等级85以上S、M、L升级所需要的经验也不一样,体型越大的宠物,需要的升级经验越高。体型越大的宠物,对地方攻击造成气绝的概率越高。收到气绝的概率也越低。2.3 宠物属性宠物分雷、火、水、绿、暗、无六种属性。属性之间存在克制关系,无属性没有克制与被克制关系,具体可以继续往下看。2.4 宠物等级上限宠物等级上限只和模式有关,普通300级困难800级噩梦1200级关于800级以上宠物轮回进困难:只要宠物吃到经验,就会变成800级,等级变成了困难的上限然而属性不变。当该宠物回到噩梦时,依然是800级,如果继续给该宠物升级,例如升至801级,属性会变成801级的属性,需要重新升级。小结:噩梦宠物轮回困难,要么800级,要么1200级。3. 职业表4. 掉落物游戏中分为好几个地图前期地图是聚焦共和国,基本上是萌新早期活跃的地盘,这里虽然物品掉落丰富,但基本上都是在中后期比较鸡肋的东西,不过前期地图也可以掉才能上升药,升星也毫无压力。阿里莫妮亚大陆的地图属于16到95级的练级点,这里的话也算是一个前期的地图,稍微比萌新期高一点,也并没有什么值得注意的特殊掉落物品。梅丽迪波王国的等级在78至125,跨度不大,但是这个地区现在可以拿到等级3的宠物蛋了,虽然也比较拉胯但是孵化出的宠物基本可以足够在前期玩一玩。东南尾端诸岛唯一值得刷的就是秘境岛屿,这里会出不少稀有掉落物品,并且非常集中,所以当你开了这个地区的话可以去那里碰碰运气。楠迪大陆这张地图比较小,但可以去能吃岛刷刷四级宠物蛋,还是挺不错的。大海贼地带的开拓之地是游戏后期掉落最好的地方,所以可以刷一刷,但是怪的等级和数量都极其高,建议有一些练度以后再去。开罗诸岛是等级最高的据点,但是掉落其实不怎么好,基本可以在上一张图拿到,所以这张图实际上可以忽略不刷。5. 布局图参考这个6. 武器表1. 剑系武器2. 杖系武器3. 斧系武器4. 枪系武器5. 打击类武器6. 铳类武器7. 弓类武器8. 盾9. 头部装备10. 防具11. 饰品
2026年02月05日
39 阅读
0 评论
0 点赞
2025-12-16
Typecho Joe主题增加目录
Typecho Joe主题添加文章目录导航方法和样式参考:https://www.cnblogs.com/weixia-blog/p/180673661. 安装Menutree插件wget https://github.com/typecho-fans/plugins/releases/download/plugins-M_to_R/MenuTree.zip解压后放到typecho插件目录:usr/plugins2. 配置插件首先在管理后台启用插件,配置里面两个都勾上显示模式 嵌入模式 独立模式嵌入模式在文章里面直接输入1. 安装Menutree插件2. 配置插件3. 修改主题模版4. 后台的主题配置界面即可显示目录独立模式需要在模板文件写入<?php $this->treeMenu(); ?>3. 修改主题模版编辑Joe主题文件夹usr/themes/Joe/public/aside.php文件 <section class="joe_aside__item menu-tree" style="display:none;"> <div class="joe_aside__item-title menu_title"> <svg t="1642997936013" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2169" width="128" height="128"><path d="M838.3 895.9H197.9c-53.9 0-97.7-43.8-97.7-97.7V236.7c0-53.9 43.8-97.7 97.7-97.7h640.3c53.9 0 97.7 43.8 97.7 97.7v561.4c0.1 53.9-43.7 97.8-97.6 97.8zM197.9 203.8c-18.1 0-32.9 14.8-32.9 32.9v561.4c0 18.1 14.8 32.9 32.9 32.9h640.3c18.1 0 32.9-14.8 32.9-32.9V236.7c0-18.1-14.8-32.9-32.9-32.9H197.9z" fill="#666666" p-id="2170"></path><path d="M695.1 455.2H341.2c-17.9 0-32.4-14.5-32.4-32.4s14.5-32.4 32.4-32.4h353.9c17.9 0 32.4 14.5 32.4 32.4s-14.5 32.4-32.4 32.4zM695.1 578.2H341.2c-17.9 0-32.4-14.5-32.4-32.4s14.5-32.4 32.4-32.4h353.9c17.9 0 32.4 14.5 32.4 32.4s-14.5 32.4-32.4 32.4zM695.1 701.2H341.2c-17.9 0-32.4-14.5-32.4-32.4s14.5-32.4 32.4-32.4h353.9c17.9 0 32.4 14.5 32.4 32.4s-14.5 32.4-32.4 32.4zM379.1 281.1c-17.9 0-32.4-14.5-32.4-32.4V115.4c0-17.9 14.5-32.4 32.4-32.4s32.4 14.5 32.4 32.4v133.2c0 17.9-14.5 32.5-32.4 32.5zM657.1 281.1c-17.9 0-32.4-14.5-32.4-32.4V115.4c0-17.9 14.5-32.4 32.4-32.4s32.4 14.5 32.4 32.4v133.2c0 17.9-14.5 32.5-32.4 32.5z" fill="#666666" p-id="2171"></path></svg> <span class="text">目录</span> </div> <?php $this->treeMenu(); ?> </section>4. 后台的主题配置界面设置外观 --> 全局设置 --> 自定义CSS/* 核心修正:只控制我们添加的“目录”模块,不影响其他小组件 */ /* 原来的规则:.joe_post + .joe_aside > section { display: none; } */ .joe_post + .joe_aside > .menu-tree { display: block !important; /* 确保目录模块在文章页显示 */ } /* 确保“作者信息”模块显示 */ .joe_post + .joe_aside > .author { display: block; } /* 以下是纯粹的目录样式美化,按需调整 */ .menu-tree { background: var(--background); padding-bottom: 25px; position: sticky; margin-bottom: 15px; } .index-menu { max-height: 500px; overflow-y: auto; overflow-x: hidden; margin-top: 10px; overscroll-behavior: contain; } .index-menu-item { margin: 12px 0px; /* 修改这里:将上下边距从10px增加到12px或更大 */ } .index-menu-list { margin: 8px 0px 8px 15px; /* 修改这里:将上下边距从5px增加到8px,左侧缩进可保留 */ } .index-menu-link { color: var(--main); transition: all 0.2s ease-in-out 0s; padding: 5px 0px; } .index-menu-link:hover { color: var(--theme); text-shadow: var(--text-shadow); font-weight: 500; } /* 锚点跳转定位 */ .menu-target-fix { display: block; position: relative; top: -100px; } /* 2. 调整“目录”标题与下方列表的间距:增加间距 */ .joe_aside__item-title { margin-bottom: 15px; /* 可以适当增加这个值 */ } /* 在宽度小于1000px的设备上隐藏短划线,以使目录的标题正常显示 */ @media screen and (max-width: 1000px) { .joe_aside__item-title > .line { display: none; } } /* 在宽度小于800px的设备上隐藏目录侧边栏 */ @media screen and (max-width: 800px) { .menu-tree { display: none !important; } }
2025年12月16日
30 阅读
0 评论
0 点赞
2025-12-16
简单的UV使用教程
这个教程涵盖了 UV 的主要功能。随着 UV 的快速发展,建议查看官方文档获取最新信息:uv 中文文档安装UV安装 UVmacOS 和 Linux# 使用 curl curl -LsSf https://astral.sh/uv/install.sh | sh # 或者使用 pip pip install uvWindows# 使用 PowerShell powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # 或者使用 pip pip install uv升级# 使用自身上升级命令(1.0版本以上) uv self update # 或使用旧的升级命令 uv pip install --upgrade uv📍 创建全局 uv.toml 的路径你需要根据操作系统,在指定目录创建一个新的文本文件,并命名为 uv.toml。操作系统全局配置文件完整路径如何快速打开/创建Windows%APPDATA%\uv\uv.toml1. 按 Win+R,输入 %APPDATA%\uv 并回车。2. 在打开的文件夹内,新建文本文档,重命名为 uv.toml。macOS / Linux~/.config/uv/uv.toml在终端执行:mkdir -p ~/.config/uv && nano ~/.config/uv/uv.toml🛠️ 创建并配置文件的步骤打开或创建文件:使用上表的方法,在正确的位置创建一个名为 uv.toml 的纯文本文件。编辑文件内容:将以下配置粘贴进去(以清华大学源为例):[[index]] url = "https://pypi.tuna.tsinghua.edu.cn/simple" # 可选的附加配置:设置并行下载数以提高速度 concurrent-downloads = 8 # 可选:如果你想设置安装相关的其他参数,正确字段是 `[pip]` # [pip] # jobs = 8 # `jobs` 参数在 `[pip]` 字段下是有效的Python 版本管理查看可用的 Python 版本uv python list安装特定 Python 版本# 安装最新 Python 3.12 uv python install 3.12 # 安装特定小版本 uv python install 3.11.5 # 安装预览版 uv python install 3.13-dev使用特定 Python 版本# 为当前项目指定 Python 版本 uv python pin 3.12 # 查看当前项目使用的 Python 版本 uv python show依赖管理从 requirements.txt 安装依赖基本安装uv pip install -r requirements.txt同步依赖(类似 pip-sync)# 同步虚拟环境中的包,使其与 requirements.txt 完全一致 uv pip sync requirements.txt安装开发依赖uv pip install -r requirements-dev.txt生成 requirements.txt从当前环境生成uv pip freeze > requirements.txt生成带哈希值的锁定文件uv pip compile pyproject.toml -o requirements.lock生成特定平台的依赖# 只生成当前平台需要的依赖 uv pip compile pyproject.toml --platform linux-x86_64创建和更新依赖添加新包uv pip install pandas # 添加到 requirements.txt uv pip install pandas && uv pip freeze > requirements.txt更新所有包uv pip compile --upgrade pyproject.toml更新特定包uv pip install "pandas>=2.0.0"项目管理初始化新项目# 创建新项目目录 mkdir my-project cd my-project # 初始化项目(会创建 pyproject.toml) uv init # 或使用指定 Python 版本初始化 uv init --python 3.12创建虚拟环境# 在当前目录创建虚拟环境 uv venv # 指定虚拟环境名称 uv venv .venv # 使用特定 Python 版本 uv venv --python 3.12激活虚拟环境Linux/macOS:source .venv/bin/activateWindows:.venv\Scripts\activate在虚拟环境中使用 uv# 激活虚拟环境后,安装依赖 uv pip install -r requirements.txt # 或直接使用 uv run 运行命令 uv run python script.py常用命令安装相关# 安装单个包 uv pip install package-name # 安装指定版本 uv pip install "package-name==1.0.0" # 安装并添加到 pyproject.toml uv add package-name # 安装开发依赖 uv add --dev black依赖解析# 解析依赖树 uv pip tree # 检查过时的包 uv pip list --outdated # 显示包信息 uv pip show package-name清理和维护# 清理缓存 uv cache clean # 删除包 uv pip uninstall package-name # 修复损坏的环境 uv pip check工作流示例示例 1:从现有 requirements.txt 开始# 1. 克隆项目 git clone project-url cd project # 2. 创建虚拟环境 uv venv # 3. 激活虚拟环境 source .venv/bin/activate # Linux/macOS # 或 .venv\Scripts\activate # Windows # 4. 安装依赖 uv pip install -r requirements.txt # 5. 运行项目 uv run python main.py示例 2:从头创建新项目# 1. 创建项目目录 mkdir new-project cd new-project # 2. 初始化项目 uv init --python 3.11 # 3. 添加依赖 uv add fastapi uv add --dev pytest # 4. 安装依赖 uv pip install # 5. 生成 requirements.txt uv pip freeze > requirements.txt示例 3:同步生产环境# 1. 在生产服务器上创建虚拟环境 uv venv --python 3.11 # 2. 激活环境 source .venv/bin/activate # 3. 同步精确版本 uv pip sync requirements.lock # 4. 启动应用 uv run gunicorn app:app与 pip 对比的优势速度更快:UV 比 pip 快 10-100 倍内置虚拟环境管理:无需额外安装 virtualenv更好的依赖解析:更快的依赖解析和冲突检测跨平台一致性:更好的跨平台依赖管理一体化工具:集成了 pip、pip-tools、virtualenv 等功能提示和技巧使用 UVX 运行工具(类似 npx):# 无需安装即可运行 Python 工具 uvx black .并行安装:# UV 默认并行安装,可通过 --no-parallel 禁用 uv pip install --no-parallel -r requirements.txt离线模式:# 使用缓存的包 uv pip install --offline package-name仅安装当前平台依赖:uv pip install --platform-current故障排除清除缓存解决问题:uv cache clean详细日志:uv pip install -v package-name强制重新安装:uv pip install --reinstall package-name配置UV 的配置文件位于:Linux/macOS: ~/.config/uv/uv.tomlWindows: %APPDATA%\uv\uv.toml示例配置:toml[[tool.uv.index]] url = "https://pypi.tuna.tsinghua.edu.cn/simple" [tool.uv] # 总是升级包 upgrade = true # 并行下载数 concurrent-downloads = 8 [tool.uv] # 缓存目录 cache-dir = "~/.cache/uv"
2025年12月16日
56 阅读
0 评论
0 点赞
2025-11-21
uniapp离线打包
超详细!uni-app Android本地打包傻瓜式教程1. 接入mPaaS,支付宝原生扫码插件支付宝原生扫码插件 - DCloud 插件市场uniapp里面按照上面的配置离线打包的时候,增加下面的配置<meta-data android:name="mobilegw.appid" android:value=""/> <meta-data android:name="workspaceId" android:value=""/> <meta-data android:name="mpaasConfigLicense" android:value=""/>在main\assets目录下,增加一个dcloud_uniplugins.json文件,我是根据插件目录里面的配置写的{ "nativePlugins": [ { "plugins": [ { "type": "module", "name": "Mpaas-Scan-Module", "class": "com.mpaas.uniapp.scan.MpaasScanModule" } ] } ] }将插件目录下的android,里面的所有内容,都复制到libs里面然后正常打包就行了2. push2.0相关maven { url 'https://mvn.getui.com/nexus/content/repositories/releases' }<service name="push" value="io.dcloud.feature.aps.APSFeatureImpl"/><intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="io.dcloud.unipush" android:path="/" android:scheme="unipush" /> </intent-filter>// 个推相关 manifestPlaceholders = [ "GETUI_APPID" : "GETUI_APPID", "plus.unipush.appid" : "GETUI_APPID", "plus.unipush.appkey" : "AppKey", "plus.unipush.appsecret": "AppSecret", "apk.applicationId" : "包名:比如com.test.app" ]在hb项目里面,右键,新增云函数,提交到线上,便可使用const uniPush = uniCloud.getPushManager({appId: "你的应用appId"}) //注意这里需要传入你的应用appId exports.main = async (event, context) => { let push = { "push_clientid": "", # 填写上一步在uni-app客户端获取到的客户端推送标识push_clientid "force_notification": True, # 填写true,客户端就会对在线消息自动创建“通知栏消息”。 "title": "通知栏显示的标题", "content": "通知栏显示的内容", "settings": { # 消息有效期设置,单位毫秒,-1表示不设离线。默认是 2 小时,取值范围:-1 ~ 3 * 24 * 3600 * 1000(3天)之间 "ttl": 86400000 }, "payload": { "text": "体验一下uni-push2.0" }, "badge": "+1" } return await uniPush.sendMessage(push) }dcloud的云空间,记得添加这三张表
2025年11月21日
38 阅读
0 评论
0 点赞
2025-11-20
git的一些操作
标签# 查看已有标签: git tag # 查看标签详情(备注): git tag -n # 创建标签: git tag -a v0.0.1 -m "标签的备注" # 推送标签: git push origin v0.0.1本地和线上的有冲突的解决方案保留本地修改,同时拉取线上版本# 暂存本地修改 git stash # 拉取最新代码 git pull # 恢复本地修改(如果有冲突需要手动解决) git stash pop
2025年11月20日
35 阅读
0 评论
0 点赞
2025-11-17
Windows系统打包备份
它们能自动处理系统分区、引导分区,并自带一个可启动的恢复环境,直接生成一个能用来安装系统的U盘或ISO文件。以下是几个非常流行且强大的选择:AOMEI Backupper(傲梅轻松备份) - 强烈推荐这款软件对个人用户免费,功能强大且界面非常友好,是DiskGenius方案的最佳替代品。操作流程:在虚拟机中准备:启动您的Win10虚拟机。下载并安装 AOMEI Backupper Standard。(可选但推荐)运行磁盘清理,减少体积。依然建议运行 sysprep /oobe /generalize /shutdown 进行通用化,以确保系统可以部署到其他电脑。创建系统备份镜像:运行AOMEI Backupper。选择 “备份” -> “系统备份”。关键优势: 软件会自动选择所有系统启动所必需的分区(包括EFI分区和MSR分区),您无需手动选择。您只需要选择备份文件存放的位置(比如虚拟机里的D盘,或者一个网络位置)。点击“开始备份”。它会生成一个单一的、包含所有系统的镜像文件(.adi格式)和一些描述信息。创建可启动恢复介质:在软件主界面找到 “工具” -> “创建可启动媒体”。选择创建类型(推荐基于Linux或Windows PE的介质,兼容性更好)。选择输出方式为 “ISO文件”。程序会自动引导您生成一个.iso文件。这个ISO就是您的“自定义安装盘”!如何使用这个ISO安装系统?在任何一台新电脑(物理机或新虚拟机)上,用这个ISO启动。它会直接进入AOMEI Backupper的恢复界面。使用 “还原” 功能,选择您之前备份好的那个.adi系统镜像文件。软件会自动识别目标硬盘,您只需点击“开始还原”,它就会自动将整个系统(包括引导)写入硬盘。重启电脑,您熟悉的、带着所有设置和软件的Windows就出现了。
2025年11月17日
38 阅读
0 评论
0 点赞
2025-11-12
HBuilderX CLI注意事项
1. 官网地址:https://hx.dcloud.net.cn/cli/README2. 注意事项cli open./cli open -1 :open: 操作超时安装依赖apt install -y libgl1 libharfbuzz0b
2025年11月12日
39 阅读
0 评论
0 点赞
2025-09-11
飞牛遇到的一些问题
1. 个人空间与实际使用不符合#!/bin/bash btrfs quota rescan -w /vol12. 回收站内容不会自动清理比如我需要清理的是网络备份这个回收站目录下的文件#!/bin/bash # 定义要清理的目录 TRASH_DIR="/vol2/1000/.@#local/trash/网络备份" # 定义日志文件位置 LOG_FILE="/vol2/1000/网络备份/clean_network_back.log" # 获取当前时间,用于日志记录 echo "=== 清理任务开始于 $(date) ===" >> "$LOG_FILE" 2>&1 # 检查目标目录是否存在 if [ -d "$TRASH_DIR" ]; then # 计算清理前的目录大小 BEFORE_SIZE=$(du -sb "$TRASH_DIR" 2>/dev/null | cut -f1) BEFORE_SIZE=${BEFORE_SIZE:-0} # 如果目录为空或不存在,设为0 # 执行删除操作,强制删除目录下的所有文件和子目录 # 使用 /bin/rm 的绝对路径以避免别名问题 /bin/rm -rf -- "$TRASH_DIR"/* >> "$LOG_FILE" 2>&1 # 计算清理后的目录大小 AFTER_SIZE=$(du -sb "$TRASH_DIR" 2>/dev/null | cut -f1) AFTER_SIZE=${AFTER_SIZE:-0} # 如果目录为空或不存在,设为0 # 计算释放的空间(字节) FREED_SPACE=$((BEFORE_SIZE - AFTER_SIZE)) # 格式化显示空间大小 format_size() { local bytes=$1 if [ $bytes -ge 1073741824 ]; then echo "$(echo "scale=2; $bytes/1073741824" | bc) GB" elif [ $bytes -ge 1048576 ]; then echo "$(echo "scale=2; $bytes/1048576" | bc) MB" elif [ $bytes -ge 1024 ]; then echo "$(echo "scale=2; $bytes/1024" | bc) KB" else echo "${bytes} B" fi } FREED_SPACE_FORMATTED=$(format_size $FREED_SPACE) echo "成功清理目录 $TRASH_DIR 下的所有内容。" >> "$LOG_FILE" 2>&1 echo "释放空间: $FREED_SPACE_FORMATTED" >> "$LOG_FILE" 2>&1 echo "清理详情: 清理前 $(format_size $BEFORE_SIZE), 清理后 $(format_size $AFTER_SIZE)" >> "$LOG_FILE" 2>&1 else echo "错误:目录 $TRASH_DIR 不存在,清理任务已中止。" >> "$LOG_FILE" 2>&1 fi echo "=== 清理任务结束于 $(date) ===" >> "$LOG_FILE" 2>&1 echo "" >> "$LOG_FILE" 2>&1将脚本放到某个目录下,比如我的放到的是**/网络备份/clean_network_back.sh使用crontab来做定时任务# 查看当前任务 crontab -l # 编辑任务 crontab -e增加一行# 分别对应秒分时天月 0 8 * * * /vol2/1000/网络备份/clean_network_back.sh
2025年09月11日
60 阅读
0 评论
0 点赞
2025-08-19
Python极速搭建局域网文件传输服务器
在日常工作中,是否遇到下面的困扰:同事急需你电脑上的资料文件,却找不到U盘聊天工具传输速度慢,文件类型受限云存储等第三方工具存在隐私泄露风险,还需要复杂配置今天我们使用Python内置神器,3秒搭建局域网文件共享服务器!你没看错,就是3秒!核心武器:HTTP服务器模块Python自带了一个强大的模块http.server,只需要一条命令就能启动文件共享服务器# 在文件所在目录执行 python -m http.server默认端口8000,浏览器访问http://your_ip:8000,就可以查看当前目录下的所有文件实测传输1GB的文件用时不到10s(千兆局域网环境)手机连接同一个局域网,同样也能在浏览器访问服务端可以查看到所有的访问记录(如上图所示)进阶使用技巧1.自定义端口将默认的8000端口替换为其他未被占用的端口python -m http.server 78792.自定义共享目录设置共享的根目录# Linux/Mac共享/share文件夹 python3 -m http.server -d /share 7879 # Windows共享D:\share文件夹 python -m http.server -d D:\share 78793.多线程性能优化http.server默认为单线程,多人使用有高并发阻塞风险,可使用socketserver.ThreadingTCPServerimport socketserver from http.server import SimpleHTTPRequestHandler handler = SimpleHTTPRequestHandler with socketserver.ThreadingTCPServer(('', 7879), handler) as httpd: httpd.serve_forever()安全提示:使用完毕后请及时关闭文件共享服务(关闭cmd命令终端窗口即可),避免长期暴露文件技术不在于复杂,而在于解决实际问题。下次需要共享文件时,无需聊天工具来回发送,也不必寻找U盘,只需打开终端,一行命令开启专属高速文件共享通道!
2025年08月19日
61 阅读
0 评论
0 点赞
2025-08-12
使用GitHub Action 自动构建 RustDesk 客户端
1. 安装rustdeskdocker-compose 文件:假设你的域名是rustdesk.test.comservices: rustdeskapi: container_name: rustdeskapi ports: - 21114:21114 - 21115:21115 - 21116:21116 - 21116:21116/udp - 21117:21117 - 21118:21118 - 21119:21119 image: lejianwen/rustdesk-server-s6:latest environment: RELAY: "rustdesk.test.com:21117" #中继服务器:21117 ENCRYPTED_ONLY: 1 MUST_LOGIN: Y #默认为N,设置为Y 则必须登录才能链接 TZ: Asia/Shanghai RUSTDESK_API_RUSTDESK_ID_SERVER: "rustdesk.test.com:21116" #ID服务器 RUSTDESK_API_RUSTDESK_API_SERVER: "https://rustdesk.test.com" #API服务器 RUSTDESK_API_RUSTDESK_KEY: "" # 首次运行后给的 RUSTDESK_API_JWT_KEY: "随便一个" # 自定义JWT KEY,为空则不启用JWT,如果没使用lejianwen/rustdesk-server中的MUST_LOGIN,建议设置为空 RUSTDESK_API_RUSTDESK_WS_HOST: "wss://rustdesk.test.com" volumes: - ./server:/data - ./api:/app/data #将数据库挂载 restart: unless-stoppednginx文件:参考:HTTPS Reverse Proxy · lejianwen/rustdesk-api Wikiserver { server_name <server>; listen 443 ssl; ssl_certificate /etc/nginx/ssl/<server>/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/<server>/privkey.pem; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://rustdesk-api:21114/; } location /ws/id { proxy_pass http://rustdesk-server:21118; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /ws/relay { proxy_pass http://rustdesk-server:21119; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } server { if ($host = <server>) { return 301 https://$host$request_uri; } server_name <server>; listen 80; return 404; }2. Fork Rustdesk仓库rustdesk/hbb_commonrustdesk/rustdesk2.1 拉取 Fork 后的代码请注意,替换仓库地址为你fork后的仓库地址,而不是直接复制我下面的命令 # 可选:如果需要使用代理 # git config --global http.proxy http://127.0.0.1:10808 # git config --global https.proxy http://127.0.0.1:10808 # 拉取仓库代码到本地 请替换为你fork后的仓库地址 git clone https://github.com/irains/hbb_common.git git clone https://github.com/irains/rustdesk.git 3. 修改 hbb_common代码打开 hbb_common 仓库下的 src/config.rs文件,修改 101-102 行 的默认服务器和密钥为你自己的服务器和密钥。 3.1 推送修改后的代码# 将修改的代码添加到暂存区 git add . # 将代码提交到本地仓库 git commit -m "修改默认的服务器和 key" # 将本地仓库代码推送到远程仓库 如果你没有登录过GitHub会要求你登录github git push 3.2 查看最新提交的 commit IDgit log --oneline我这里提交后的commit id是b8d80ca,可用于后续验证rustdesk服务器和key是否修改成功4. 修改 rustdesk 仓库代码我们切换到克隆下来的rustdesk代码目录下,按照下面的方式修改子模块地址并更新。4.1 更新 .gitmodules打开并编辑 .gitmodules 文件,将 url 替换为你Fork后的 hbb_common 仓库地址。比如我fork后的仓库地址是https://github.com/irains/hbb_common\则将 https://github.com/rustdesk/hbb_common地址换为前面这个地址即可,记住是hbb_common的地址,而不是rustdesk仓库的地址4.2 更新子模块将上面修改好的代码保存,执行下面的命令更新子模块到最新的commit idgit submodule sync git submodule update --remote如果上面的方法不行,用下面这个cd libs/hbb_common git checkout <上面提到的版本号> cd ../.. git add libs/hbb_common git commit -m "Pin submodule to specific version"4.3 提交并推送代码git add . git commit -m "修改子模块仓库地址" git push4.4 确认 Commit ID 更新代码推送完毕后,进入你Fork 后的 rustdesk 仓库的 libs 目录下,查看 hbb_common 后面的 commit id,确保它是3.2提到的b8d80ca(这个值每个人的是不同的),否则请回到上面的步骤重新检查是否遗漏了某个操作。 5. 触发 GitHub Action 构建5.1 创建 Tag在本地 rustdesk 仓库中创建一个新 tag,例如 1.3.9,请使用 固定格式 (如 1.3.9 或 v1.3.9),以便于自动匹配构建规则。git tag -a 1.3.9 -m "修改内置服务器和 key"5.2 增加API_SERVER来到rustdesk项目,settings --> Secrets and variables --> new repository secretname:API_SERVERsecret:RUSTDESK_API_RUSTDESK_API_SERVER的值5.3 触发 GitHub Actions 构建在 rustdesk 仓库中,进入 Actions 页面,点击下面图中的按钮启用自动构建。启用后回到本地rustdesk代码中使用下面的命令将tag推送到Github后将自动开始构建。git push --tags5.4 下载构建好的客户端Tag推送完毕后会出现下面的构建进度。 等待 Action 执行完成后(时间比较长,一个半小时左右才能全部构建完成),进入 Releases 页面,即可下载构建好的客户端并使用。
2025年08月12日
94 阅读
0 评论
0 点赞
2025-08-07
Windows使用wsl开发
安装wsl1. 安装wsl --install2. 重启电脑使用可以直接在资源管理器里面输入这个链接\\wsl$\Ubuntu\home\你的用户名cmd里面使用wsl -d Ubuntu # 默认root用户 ubuntu config --default-user root
2025年08月07日
32 阅读
0 评论
0 点赞
1
2
...
8