在python中导入模块时,我需要一些帮助。所以。。没有不必要的唠叨:
我有特定的目录和模块结构:
现在,从用户的角度来看,您只能导入:
import multisoft.Core as MSC
例如,您应该通过以下方式访问子模块:
MSC.Controls.someFunction()
这个模块可以在不同的软件中使用,从用户的角度看,你在哪个软件中并不重要。本模块使用方法相同。当然各个子模块的实现方式,也因软件而异。你知道吗
我有一些限制,我必须保持。基本上每个模块都可以有更多或更少的文件。以及所有的__ 在每个软件实现中都必须考虑变量:
(在那些init的文件中,您放置了uuu all_uuuuu变量:uuu all_uuuuuuu=['Controls','Rigs'])
我制作了一部分代码,基本上做了我想做的事情:
核心/\uuuu初始\uuuuuuuuuuy.py
import os
import sys
def _softRecognize():
if youAreInSoft1():
directory = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0,directory)
module = __import__('Soft1', fromlist=['*'])
globals().update(vars(module))
_softRecognize()
但我不能重新加载这个模块,这是我必须遵守的限制之一。你知道吗
import multisoft.Core as MSC
reload(MSC)
# Error: reload(): module Soft1 not in sys.modules
# Traceback (most recent call last):
# File "<maya console>", line 1, in <module>
# ImportError: reload(): module Soft1 not in sys.modules #
谢谢你的帮助
祝你一切顺利 卡米尔
因此,您正在尝试抽象接口。有两种方法,条件导入或变量赋值:
在这两种情况下,您还需要让子模块重新加载它们所需要的任何东西,也就是说,如果您想要这种行为,重新加载控件也必须在down上重新加载它的子模块。你知道吗
相关问题 更多 >
编程相关推荐