当前位置: 首页 > news >正文

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

一个库,比如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.dtcms.com/a/255350.html

相关文章:

  • macOS - 根据序列号查看机型、保障信息
  • 深度学习N5周:Pytorch文本分类入门
  • 从番茄炒蛋到神经网络:解密AI模型的本质
  • Linux命令合集
  • 删除一个无进程使用却显示被使用的文件
  • .Net Framework 4/C# 进程和线程的使用
  • No module named ‘dbgpt_ext.rag.retriever.doc_tree‘
  • 【FineDance】一次训练后得到音乐和动作数据切片 (6790个文件)
  • MVCC(多版本并发控制)深度解析:原理、流程与实战应用
  • 数据融合平台是什么?如何搭建数据融合平台?
  • 如何轻松地将音乐从 iPhone 传输到 Mac?
  • npm/yarn报错“certificate has expired“
  • 【JupyterLab集成】GPU性能监控可视化组件
  • C++ 单例模式一种实现方式
  • 【系统规划与管理师第二版】1.2 信息技术及其发展
  • GitHub Copilot 是什么,怎么使用
  • Spring WebFlux和Spring MVC的对比
  • 字符编码(UTF-8,16,32 和GBK和ASCLL码)
  • conda(Anaconda/Miniconda)常用命令
  • 使用 `Expect` 工具实现了自动化文件传输
  • c++11右值引用(rvalue reference)
  • FastAPI lifespan示例
  • 生态环评GIS/遥感制图:土地利用+植被覆盖+土壤侵蚀+水系提取,ArcGIS+ENVI实战
  • 响应式数据可视化大屏解决方案,重构工业交互体验
  • Chapter15 cross-origin resource sharing
  • Windsurf SWE-1模型评析:软件工程的AI革命
  • 上海人工智能实验室明珠湖会议首开,解答AI前沿疑问,推进科学智能
  • [论文阅读] 人工智能+软件工程 | 用大语言模型架起软件需求形式化的桥梁
  • 组态王工程运行时间显示
  • 开疆智能ModbusTCP转EtherCAT网关连接IVO编码器配置案例