一个库,比如kott_tinymce ,想把的依赖库从kotti升级到kotti2 ,请问我是不是查找替换,把所有的kotti字符替换成kotti2就行了?

kotti和kotti2的包结构、模块路径、接口完全一样,除了import kotti 变成kotti2

如果 kotti 和 kotti2 的包结构、模块路径、接口完全一样,唯一区别就是包名由 kotti 改成了 kotti2,那么直接全局查找替换
import kotti → import kotti2
确实是可行的(前提是你确认功能和API完全兼容,没有其他差异)。


推荐的升级步骤(简化版)

  1. 修改依赖

    • requirements.txt / pyproject.toml / setup.py 中把kotti换成kotti2
  2. 代码中查找替换

    • 所有 import kotti 改成 import kotti2
    • 所有引用 kotti. 的地方改成 kotti2.。你可以用IDE或者文本编辑器的“全局查找替换”功能完成。
  3. 配置文件确认

    • 检查项目里关于kotti的配置文件(如.ini.yaml等),确认没有硬编码 kotti,或者调整为 kotti2
  4. 执行测试

    • 运行单元测试和集成测试,确认没有意外问题。
    • 做趣味测试(Smoke test)验证应用启动和主要功能正常。
  5. 必要时做回滚方案

    • 备份原项目,一旦出现问题可以快速回滚。

需要注意的小细节

  • 虚拟环境:最好在一个干净的虚拟环境里操作,避免旧 kotti 包干扰。

  • 依赖的第三方库:你用的其他扩展库(比如kotti_tinymce)是否对 kotti 做了硬编码?有些库可能没更新 kotti2,需要检查并替换。

  • 文本中字符串引用:不要忘了检查代码里写的字符串,比如日志、配置中的包名、入口点脚本名等。


总结

如果 kotti 与 kotti2 仅包名不同,其他完全相同,全局替换包名是可行且合理的升级策略。


测试了一下,要比想像的复杂一点,因为无脑查找替换后,有些对应的是路径,也就是目录名,这样就要求那些路径也要改名....

另外还有些库测试的时候需要,比如用这个命令测试:

pytest  --disable-warnings --disable-pytest-warnings  

报错

_____________ ERROR collecting kotti2_tinymce/tests/test_views.py ______________
ImportError while importing test module '/usr/home/skywalk/github/kotti_tinymce-master/kotti2_tinymce/tests/test_views.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/home/skywalk/minipy312/lib/python3.12/importlib/__init__.py:90: in import_modulereturn _bootstrap._gcd_import(name[level:], package, level)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
kotti2_tinymce/tests/test_views.py:6: in <module>from kotti2_image.resources import Image
E   ModuleNotFoundError: No module named 'kotti2_image'
_____________ ERROR collecting kotti2_tinymce/tests/test_views.py ______________
ImportError while importing test module '/usr/home/skywalk/github/kotti_tinymce-master/kotti2_tinymce/tests/test_views.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/home/skywalk/minipy312/lib/python3.12/importlib/__init__.py:90: in import_modulereturn _bootstrap._gcd_import(name[level:], package, level)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
kotti2_tinymce/tests/test_views.py:6: in <module>from kotti2_image.resources import Image
E   ModuleNotFoundError: No module named 'kotti2_image'

还有报错

fanstatic.core.UnknownResourceError: Resource file does not exist: /usr/home/skywalk/github/kotti_tinymce-master/kotti2_tinymce/static/kotti2_tinymce.js

将那几个js文件的kotti改名为kotti后,相关报错消失,现在就只剩kotti2_image这个报错了。

所以回头还需要把kotti_image再改成kotti2_image .

另外这些库比较老了,没有pyproject.toml文件,后面还需要补上。暂时可以先用pip install -e . 这条命令执行编译安装。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85648.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85648.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/85648.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业实践 | 银河麒麟KylinOS-V10(SP3)高级服务器操作系统基础安装指南

前言&#xff1a;国产操作系统的崛起与实践背景 在国产化浪潮与信息技术自主可控的大背景下&#xff0c;银河麒麟操作系统作为国产操作系统的代表之一&#xff0c;正逐步成为企业级应用的重要选择。本文将详细介绍银河麒麟高级服务器操作系统V10 SP3版本的基础知识与安装实践&…

Ubuntu 一键安装 ROS

Ubuntu 一键安装 ROS 安装命令如下&#xff1a; wget http://fishros.com/install -O fishros && . fishros 指令执行后&#xff0c;显示log如下图&#xff1a; 之后根据不同的系统安装对应的ros版本即可。

深度学习——基于卷积神经网络实现食物图像分类【4】(使用最优模型)

文件目录 引言一、环境准备二、数据预处理训练集预处理说明&#xff1a;验证集预处理说明&#xff1a; 三、自定义数据集类四、设备选择五、CNN模型构建六、模型加载与评估1. 加载预训练模型2. 准备测试数据3. 测试函数4. 计算准确率 七、完整代码八、总结 引言 本文将详细介绍…

C++基础算法————并查集

C++并查集详解与实战指南 一、引言 并查集(Union-Find)是一种高效的数据结构,用于处理一些不相交集合的合并与查询问题。它在图论、社交网络、网络连通性等领域有广泛的应用。并查集的核心思想是通过一个数组来记录每个元素的父节点,从而将元素组织成若干棵树,每棵树代表…

系统性能优化的关键手段

系统性能的提升方向 服务器并发处理能力&#xff1a;通过优化内存管理策略、选择合适的连接模式&#xff08;长连接或短连接&#xff09;、改进 I/O 模型&#xff08;如 epoll、IOCP&#xff09;、以及采用高效的服务器并发策略&#xff08;如多线程、事件驱动等&#xff09;&a…

httpclient实现http连接池

HTTP连接池是一种优化网络通信性能的技术&#xff0c;通过复用已建立的TCP连接减少重复握手开销&#xff0c;提升资源利用率。以下是关键要点&#xff1a; 核心原理与优势 ‌连接复用机制‌ 维护活跃连接队列&#xff0c;避免每次请求重复TCP三次握手/SSL协商&#xff0c;降低…

广义焦点丢失:学习用于密集目标检测的合格和分布式边界盒之GFL论文阅读

摘要 一阶段检测器通常将目标检测形式化为密集的分类与定位(即边界框回归)问题。分类部分通常使用 Focal Loss 进行优化,而边界框位置则在狄拉克δ分布下进行学习。最近,一阶段检测器的发展趋势是引入独立的预测分支来估计定位质量,所预测的质量可以辅助分类,从而提升检…

Real-World Deep Local Motion Deblurring论文阅读

Real-World Deep Local Motion Deblurring 1. 研究目标与实际问题意义1.1 研究目标1.2 实际问题1.3 产业意义2. 创新方法:LBAG模型与关键技术2.1 整体架构设计2.2 关键技术细节2.2.1 真实模糊掩码生成(LBFMG)2.2.2 门控块(Gate Block)2.2.3 模糊感知补丁裁剪(BAPC)2.3 损…

【Docker基础】Docker镜像管理:docker commit详解

目录 引言 1 docker commit命令概述 1.1 什么是docker commit 1.2 使用场景 1.3 优缺点分析 2 docker commit命令详解 2.1 基本语法 2.2 常用参数选项 2.3 实际命令示例 2.4 提交流程 2.5 步骤描述 3 docker commit与Dockerfile构建对比 3.1 构建流程对比 3.2 对…

可调式稳压二极管

1.与普通稳压二极管的比较&#xff1a; 项目普通稳压二极管可调式稳压二极管&#xff08;如 TL431&#xff09;输出电压固定&#xff08;如5.1V、3.3V&#xff09;可调&#xff08;2.5V ~ 36V&#xff0c;取决于外部分压&#xff09;精度低&#xff08;5%~10%&#xff09;高&a…

Kafka使用Elasticsearch Service Sink Connector直接传输topic数据到Elasticsearch

链接&#xff1a;Elasticsearch Service Sink Connector for Confluent Platform | Confluent Documentation 链接&#xff1a;Apache Kafka 一、搭建测试环境 下载Elasticsearch Service Sink Connector https://file.zjwlyy.cn/confluentinc-kafka-connect-elasticsearch…

讯方“教学有方”平台获华为昇腾应用开发技术认证!

教学有方 华为昇腾应用开发技术认证 权威认证 彰显实力 近日&#xff0c;讯方技术自研的教育行业大模型平台——“教学有方”&#xff0c;成功获得华为昇腾应用开发技术认证。这一认证不仅是对 “教学有方” 平台技术实力的高度认可&#xff0c;更标志着讯方在智慧教育领域的…

保护你的Electron应用:深度解析asar文件与Virbox Protector的安全策略

在现代软件开发中&#xff0c;Electron框架因其跨平台特性而备受开发者青睐。然而&#xff0c;随着Electron应用的普及&#xff0c;如何保护应用中的核心资源文件——asar文件&#xff0c;成为了开发者必须面对的问题。今天&#xff0c;我们将深入探讨asar文件的特性&#xff0…

端口安全配置示例

组网需求 如图所示&#xff0c;用户PC1、PC2、PC3通过接入设备连接公司网络。为了提高用户接入的安全性&#xff0c;将接入设备Router的接口使能端口安全功能&#xff0c;并且设置接口学习MAC地址数的上限为接入用户数&#xff0c;这样其他外来人员使用自己带来的PC无法访问公…

零基础RT-thread第四节:电容按键

电容按键 其实只需要理解&#xff0c;手指按上去后充电时间变长&#xff0c;我们可以利用定时器输入捕获功能计算充电时间&#xff0c;超过无触摸时的充电时间一定的阈值就认为是有手指触摸。 基本原理就是这样&#xff0c;我们开始写代码&#xff1a; 其实&#xff0c;看过了…

SQL基础操作:从增删改查开始

好的&#xff01;SQL&#xff08;Structured Query Language&#xff09;是用于管理关系型数据库的标准语言。让我们从最基础的增删改查&#xff08;CRUD&#xff09;​​ 操作开始学习&#xff0c;我会用简单易懂的方式讲解每个操作。 &#x1f6e0; 准备工作&#xff08;建表…

vim 编辑模式/命令模式/视图模式常用命令

以下是一份 Vim 命令大全&#xff0c;涵盖 编辑模式&#xff08;Insert Mode&#xff09;、命令模式&#xff08;Normal Mode&#xff09; 和 视图模式&#xff08;Visual Mode&#xff09; 的常用操作&#xff0c;适合初学者和进阶用户使用。 &#x1f9fe; Vim 模式简介 Vim…

每天看一个Fortran文件(10)

今天来看下MCV模式调用物理过程的相关代码。我想改进有关于海气边界层方面的内容&#xff0c;因此我寻找相关的代码&#xff0c;发现在physics目录下有一个sfc_ocean.f的文件。 可以看见这个文件是在好多好多年前更新的了&#xff0c;里面内容不多&#xff0c;总共146行。是计算…

python打卡day37

疏锦行 知识点回顾&#xff1a; 1. 过拟合的判断&#xff1a;测试集和训练集同步打印指标 2. 模型的保存和加载 a. 仅保存权重 b. 保存权重和模型 c. 保存全部信息checkpoint&#xff0c;还包含训练状态 3. 早停策略 作业&#xff1a;对信贷数据集训练后保存权重&#xf…

【Spark征服之路-2.9-Spark-Core编程(五)】

RDD行动算子&#xff1a; 行动算子就是会触发action的算子&#xff0c;触发action的含义就是真正的计算数据。 1. reduce ➢ 函数签名 def reduce(f: (T, T) > T): T ➢ 函数说明 聚集 RDD 中的所有元素&#xff0c;先聚合分区内数据&#xff0c;再聚合分区间数据 val…