python 修改第三方库的方法,有什么比较简单的办法啊?

2015-10-15 09:38:10 +08:00
 ynztyl10

由于业务需求,需要对第三方库的某些方法做修改。
1.对于修改较多的模块,直接 fork 一份源码,修改之后再自己发布安装。
2.对于改动较少的,就用继承类的方式,然后重写需要定制的方法。

这两种方式都觉得复杂,第一种方式维护成本较大,第二种方式显得不够优雅

9165 次点击
所在节点    Python
7 条回复
wmttom
2015-10-15 09:47:38 +08:00
用 monkey_patch 的方式吧
ynztyl10
2015-10-15 09:59:21 +08:00
@wmttom 高级魔术啊
doyoubi
2015-10-15 13:22:11 +08:00
改动比较少的可以用 mock 库的 patch
deepreader
2015-10-15 14:10:11 +08:00
@wmttom 黑魔法
ahxxm
2015-10-15 15:04:41 +08:00
2 比较好点, python 第三方库感觉质量普遍不高,还不如自己定制,既减少依赖又容易维护
a358003542
2015-10-15 22:08:00 +08:00
看源码,重构。都有自己的特殊需求这个高级的要求了,还满足 patch ?那些 python 第三方模块又不是什么特别复杂的东西。
xiazi
2015-10-16 10:16:08 +08:00
如果改得地方不多, 可以这样:
先 git clone 下来, 然后直接修改代码, 修改完后生成 patch(git diff > patch).

以后更新执行下面的命令就可以了:
git reset --hard HEAD
git pull
git apply patch
rm -rf build
rm -rf dist
python setup.py install

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/228165

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX