基本上我正在使用virtualenv和pip来管理我的所有第三方模块,到目前为止它还很棒。然而,当我正在开发时,我发现这些第三方模块得到了各种非常小的错误,我一直在我的'virtualenv'文件夹中修复它们,其中显然不受版本控制,这些修复将丢失如果我做过pup --upgrade或重新创建'virtualenv'。
我已经为他们各自的回购提出了修复,但其中一些并不是非常活跃,在我的修复工作实施之前需要一段时间。
我的问题是,在这种情况下,什么是良好的工作流程?我应该只将第三方模块放在我的项目文件夹下,这样我就可以确保我的修复程序会保留,但我读过这样做是不是很糟糕?
答案 0 :(得分:1)
您所描述的是一个难以解决的难题。我通常会将模块复制到我自己的项目中,但我只会这样做作为最后的手段,我还没有这样做。
相反,如果我使用模块并且它有一个类Foo
并不是我所需要的。我会这样做:
class MyFoo(Foo):
...
并覆盖我需要的任何方法。然后,我只是在我的项目中使用MyFoo。这通常给了我所需的行为,而无需修改模块的代码。
但总的来说,如果我倾向于修改模块的源代码,我将首先广泛寻找替代方案。到目前为止,我已经能够避免它。