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