我正在做一个项目,我开发了一个库,我想只将这个库的一部分函数和对象导出到一个新库。有没有办法通过算法来执行此操作,而不仅仅是将所需的函数和类(及其依赖项)复制并粘贴到新库中?
给你一点背景。我在一个机器学习项目中工作,其中我有一个主库,即开发人员库。在这个库中,我有很多在研究环境中有用的模型和实用程序,但我只在生产中使用了这些模型、对象和函数的一小部分。
我的问题是,有没有办法定义某种文件,或者类似的东西,我写下我想导出到新库的函数和对象,所以在我的新库中我只有所需的函数和对象而不是整个图书馆。
例如,使用我的主库,我可以:
from main_lib.models import ModelA, ModelB, ModelC...
from main_lib.utils import parse, save_data, load_data
from main_lib.images import augmentate, change_format
但在产品中,我只使用main_lib.models.ModelB
and main_lib.parse
。所以我想理想地只将这两个导出到一个prod_lib
我也可以做的新库中
from prod_lib.models import ModelB...
from prod_lib.utils import parse
例如这里ModelB
使用了change_format,所以这个神奇的解决方案也应该知道ModelB
使用main_lib.images.change_format
和导出它。
所以理想情况下,当我认为我有一个新版本时,我只需将这些子模块和函数导出到新的库中。我的问题背后的主要动机之一是,每个不同的模型ModelA
等ModelB
有时都有很多配置文件,我不想移动到 prod 环境但在 dev 环境中需要这些文件。
当然我只能手工做,复制需要的方法,但复制代码,手工做可能是最糟糕的解决方案。或者也许我想错了这个问题,还有另一种组织图书馆的方法也可以解决我的问题。
我认为能够仅导出一组函数将回答我的问题,但非常欢迎任何其他建议。