隐藏maya python插件文件

隐藏maya python插件文件,python,plugins,maya,Python,Plugins,Maya,我正在开发一个包含多个节点的maya脚本插件。为了方便起见,我将每个节点拆分为一个单独的文件,如下所示 plug-ins |----- main_plugin.py |----- plugin_node_1.py |----- plugin_node_2.py 目前我已经设置了插件,所以您只需启用main\u plugin.py,其他插件就会自动加载。这还可以,但不整洁,因为所有其他插件都在为插件管理器的混乱付费 除了将所有插件文件合并成一个文件外,最好的清理方法是什么。有没

我正在开发一个包含多个节点的maya脚本插件。为了方便起见,我将每个节点拆分为一个单独的文件,如下所示

plug-ins
   |----- main_plugin.py
   |----- plugin_node_1.py
   |----- plugin_node_2.py
目前我已经设置了插件,所以您只需启用
main\u plugin.py
,其他插件就会自动加载。这还可以,但不整洁,因为所有其他插件都在为插件管理器的混乱付费


除了将所有插件文件合并成一个文件外,最好的清理方法是什么。有没有办法从插件管理器屏蔽一些插件?

我发现,主插件.py文件只需要一个
初始化插件(obj)
和一个
未初始化插件(obj)
函数定义。然后,您可以在python路径中的任意位置调用import并初始化任何其他插件文件,如下所示:

def initializePlugin(obj):
    try:
        import plugin_node_1
        plugin_node_1.initializePlugin(obj)

        import plugin_node_2
        plugin_node_2.initializePlugin(obj)


    except: 
        print 'Failed to register plug-in'

    ms_menu.createMenu()
    ms_menu.buildMenu()


def uninitializePlugin(obj):
    try:
        import plugin_node_1
        plugin_node_1.uninitializePlugin(obj)

        import plugin_node_2
        plugin_node_2.uninitializePlugin(obj)


    except: 
        print 'Failed to deregister plug-in'

    ms_menu.deleteMenu()

我发现主插件.py文件只需要一个
初始化插件(obj)
和一个
未初始化插件(obj)
函数定义。然后,您可以在python路径中的任意位置调用import并初始化任何其他插件文件,如下所示:

def initializePlugin(obj):
    try:
        import plugin_node_1
        plugin_node_1.initializePlugin(obj)

        import plugin_node_2
        plugin_node_2.initializePlugin(obj)


    except: 
        print 'Failed to register plug-in'

    ms_menu.createMenu()
    ms_menu.buildMenu()


def uninitializePlugin(obj):
    try:
        import plugin_node_1
        plugin_node_1.uninitializePlugin(obj)

        import plugin_node_2
        plugin_node_2.uninitializePlugin(obj)


    except: 
        print 'Failed to deregister plug-in'

    ms_menu.deleteMenu()

你所做的会起作用,但你应该谨慎使用。您无法像控制一个文件的状态那样轻松地控制多个文件的状态;如果节点_1加载了错误版本的节点_2,则可能会出现崩溃或其他问题,这些问题在不同的机器上无法重现。将每个插件视为一个完全原子的单元更安全——不幸的是,这意味着单个文件是一个更可持续的长期解决方案感谢您的建议,我不确定是否将我的答案标记为正确now@theodox你不能用egg文件作为两个选项之间的中间复杂度吗。缓解一些问题,但不解决所有问题?这可能会奏效。我从来没有试过看拉链是否管用——它们对普通python管用,所以值得一试……你所做的会管用,但你应该谨慎使用。您无法像控制一个文件的状态那样轻松地控制多个文件的状态;如果节点_1加载了错误版本的节点_2,则可能会出现崩溃或其他问题,这些问题在不同的机器上无法重现。将每个插件视为一个完全原子的单元更安全——不幸的是,这意味着单个文件是一个更可持续的长期解决方案感谢您的建议,我不确定是否将我的答案标记为正确now@theodox你不能用egg文件作为两个选项之间的中间复杂度吗。缓解一些问题,但不解决所有问题?这可能会奏效。我从来没有试过看拉链是否管用——它们对普通python管用,所以值得一试。。。。