Python 有没有优雅的修改使用第三方库的办法?

2022-09-27 20:42:10 +08:00
 ggp1ot2

大概是这样。

比如我现在项目 A ,用到了 B ,C 两个库。

但是这两个库的部分功能我不满意,因此我去 site-packages 文件夹下找到这俩库的目录,并修改了这辆库的部分文件。

但是这样的话,每次我要想在另外一台机器上部署这个项目,我需要先创建虚拟环境,然后复制拉取项目 A 的全部内容,然后进入到该虚拟环境下,找到库 B 、C 的目录,替换掉我修改的文件,才能成功运行。

这样有点太麻烦了,每次修改,不仅要打包项目文件,还要把 B 、C 库给找到且打包了。

有没有一种办法,可以更优雅一点?

例如,是否可以在项目 A 下,把 B 、C 库直接加进去,然后直接在这里面的 B 、C 所在的文件夹下修改,这样我只需要保存项目 A 一个文件夹就可以了。

另外一个需要说明的是,我不是直接使用了 B 、C 两个库,即不是直接 import B xxxx ,这两个库是另外几个库所依赖的。。。

总感觉我这样,每次特别蠢。。。

3059 次点击
所在节点    程序员
23 条回复
subjadeites
2022-09-28 11:37:01 +08:00
小范围就继承重写
大改就自己 fork ,然后部署 /更新脚本里加两行拉取到指定位置就行
还有一些文件数量比较小的可以直接复制到 utils 这种目录下做项目内置公共方法
lambdaq
2022-09-28 13:51:04 +08:00
@1018ji

举个例子

import sentry_sdk
sentry_sdk.utils.strip_string.__defaults__ = (10000,)

然后再初始化 sentry 的配置。这样你就可以多捕获一些字符过去了。
1018ji
2022-09-28 17:43:56 +08:00
@lambdaq 感谢大佬

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

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

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

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

© 2021 V2EX