我们有一些先前编写的代码,这些代码对python 2.7发行版中的核心库中的某些功能进行了更改。要使用我们的修订,我们现在将python 2.7库指向我们自己的库。
我想避免拥有我们自己的python 2.7软件包,而又返回到标准发行版,同时保留所做的更改。所做的更改并不多,其中misc / utils.py中包含一些函数以及一些类方法。
通过扩展类,类方法应该很容易修复。但是,我不确定如何对原始函数执行此操作。
例如函数misc / utils.py有变化
def call(*args, **kwds):
return subprocess.call(*alist, **kwds)
如果我想更改此功能并将所有调用都切换到我的功能,可以这样做。租赁的侵入方式是什么呢?
最佳答案
要回答您的直接问题-您可以create a patch并将其应用于源。这将使您的修改与原始来源分开。
但是,我强烈建议您执行此操作,请运行test suite以确保您的补丁程序不会破坏其他功能。
如果希望所有应用程序都可以在自己的修补版本的Python上运行,这是最可移植的方法。
如果您对自己的应用程序有此要求,则可以根据需要执行以下任一操作:
在目录后添加您对路径的修改。您可以通过创建sitecustomize.py
文件as detailed in the documentation来实现。该文件将在每次Python调用时加载,并将应用您的自定义设置。然后,您可以用自定义版本隐藏内置文件。
随修改一起运行的代码,您可以通过在源目录中添加阴影来添加内置的自定义项。由于工作目录是Python搜索的第一位,因此将使用您自定义的内置版本。然后可以将其打包,以便可以使用常规分发工具,使您的修改变得可移植。