最小化Python模块

时间:2014-03-05 16:15:16

标签: python

假设我的libraries目录中有一个python模块A.如何导出与模块B相同的库,但是只使用我需要的函数和代码部分?例如,我想为激光跟踪项目构建一个最小版本的openCV for Python,我确信我实际需要的代码比整个openCV库要少得多。我不想手动执行此操作,那么是否有任何类型的应用程序可以自动执行此操作?

1 个答案:

答案 0 :(得分:1)

编辑:我看到了评论,并指出你正在努力解决太空问题。在这种情况下,下面的代码不是您要找的。我认为你必须编写目标模块的最小化版本。否则,你将不得不实现某种工具,使你能够找到你想要自动使用的函数的所有依赖。

你必须选择是否值得付出努力。

class Importer:
    def __init__(self, module_name, funcion_list):
        self.__module = __import__(module_name)
        self.__specific = funcion_list

        self.initialize()

    def initialize(self):
        for elem in self.__specific:
            setattr(self, elem, getattr(self.__module, elem))

假设您只想从模块listdir导出函数os。因此,在B模块中,您可以:

os_minimized = Importer("os", ("listdir",))

然后在其他模块中写下:

from B import os_minimized
print(os_minimized.listdir("."))