当前位置: 首页 > 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 . 这条命令执行编译安装。

相关文章:

  • 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` 工具实现了自动化文件传输
  • 网站制作如何做/品牌推广软文
  • 网站建设工作室北京小俊哥/每日财经要闻
  • 新网建立网站/福建省人民政府
  • 南宁新站seo/百度高级检索入口
  • 无锡网站制作难吗/疫情防控数据
  • 众筹网站制作/品牌营销咨询公司