💻

python-container-code-patch

👤 user_96b3f16c 📦 v1.0.0 ⭐ 4.1 ⬇️ 14 下载
💻 开发编程 免费

📖 技能介绍


name: python-container-code-patch slug: python-container-code-patch displayName: python-container-code-patch version: 1.0.0 description: 修改运行中Docker容器的Python代码。备份→修改→替换→重启。


容器内Python代码修改

流程

方式A:整文件替换 + docker cp(推荐,2026-08-11 验证)

非 bind mount 的镜像层文件(如 /app/processor_ai.py),最可靠的方式是本地改好后整文件 docker cp 覆盖:

# 1. 读取容器当前文件(注意:NAS 源文件可能与容器内版本不同!)
docker exec container cat /app/processor_ai.py > /home/user/current.py

# 2. 本地修改(python3 脚本:读→replace→写)
#    修改前确认目标代码块在容器版本中存在——NAS源≠容器代码时 grep 会失败
python3 /home/user/patch_script.py

# 3. docker cp 覆盖容器内文件
docker cp /home/user/fixed.py container:/app/processor_ai.py

# 4. 重启容器加载新代码
docker restart container   # 或 Docker API /containers/<name>/restart

# 5. 验证(grep 新内容 + 实际跑一遍)
docker exec container grep -c "新函数名" /app/processor_ai.py
docker exec container python3 /app/processor_ai.py   # 或 processor 的入口

要点: - 容器重启后文件保留(docker cp 写容器可写层);重建镜像会回退 → 同步 NAS 源文件(见 docker-container-ops 的 /vol1 单挂载模式) - 覆盖后必须重启容器,进程不会热加载旧文件内容 - 修改 processor_ai.py 时注意可能有多处模板(如系统提示词 + 生成函数各一处),只改一处会导致部分输出走旧格式

方式B:函数边界拼接(旧方法)

7w4.net收录了海量优质技能插件。

# 1. 备份
docker cp container:/app/target.py /home/user/scripts/backup.py

# 2. 在本地修改文件
# 3. 上传新函数到容器
docker cp /tmp/new_func.py container:/tmp/new_func.py

# 4. 容器内替换(Python拼接)
docker exec container python3 -c "
lines=open('/app/target.py').readlines()
new=open('/tmp/new_func.py').read()
# 找到函数边界(def xxx → 下一个def)
start,end=None,None
for i,l in enumerate(lines):
    if l.startswith('def old_function'): start=i
    if start and l.startswith('def ') and i>start: end=i; break
lines=lines[:start]+[new+'\n\n']+lines[end:]
open('/app/target.py','w').writelines(lines)
"

# 5. 重启容器
docker restart container

# 6. 验证
docker exec container python3 -c "from target import send; send()"

注意

  • 查找函数边界:def old_func到下一个def next_func
  • Python缩进必须保持一致
  • 大文件用行号范围替换更快:docker exec container sed -n '100,200p'

🤖 AI 评测

这是一个解决特定场景的工具,流程清晰、步骤易懂,对简单代码修改很实用。但内容比较基础,缺乏实际案例和复杂场景的处理指导,边界情况的说明也不够充分。总体质量中等偏实用,仍有较大改进空间。

📊 多维度评分

适应性3.8
规范性4
有效性4.3
可靠性3.5
可信度5

📁 包含文件 (1 个)

📄 SKILL.md 2.6 KB