python将脚本复制到脚本中

时间:2015-09-14 21:36:18

标签: python copy maya

第1部分:复制脚本

我的计算机上有脚本,我想继续开发。这些脚本在maya文件中用作嵌入脚本,因此打开文件的人将在打开它时获得该工具。我想构建一个更新函数,这样当我打开文件时,文件中的版本将检查我的本地版本,如果我的本地版本是更高的版本号,它将更新到我的脚本。我知道如何替换maya中的字符串值,但我不确定如何从现有的python文件中复制字符串值。

如何将脚本中的文本复制到字符串值? (最好包含/ n和缩进,而我在其中)

version = 3.1
Try:
    import ToolBox
    if ToolBox.version > version:
        #do copy stuff

第2部分:多个脚本文件

我的脚本使用了几个单独的文件(简化概念如下)

file Hammer
    class Type():
        #force stuff
    def strike():
        #strike stuff
file Nail
    Class Type():
        #Type stuff
    def bindTogether():
        #bind stuff
file Wood
    #wood stuff..

file ToolBox
    Import Hammer
    Import Nail
    Import Wood
    def buildBox():
        #buildBox stuff using hammer, nail and wood

我可以将这些导入到我的脚本中的类中,并使用它们和我现在一样吗?如果没有,我该怎么办?

File Toolbox
    Class Hammer:
        class Type():
            #force stuff
        def strike():
            #strike stuff
    Class Nail:
        Class Type():
            #Type stuff
        def bindTogether():
            #bind stuff
    Class Wood:
        #wood stuff

    def buildBox():
        #buildBox stuff using hammer, nail and wood

1 个答案:

答案 0 :(得分:0)

我想你想重新考虑你提出的方法。零碎地分发东西是一件麻烦事:如果你的用户根据你机器上发生的事情以及他们做事的顺序得到不同的代码,你可能会在不同的机器上获得很多不同的状态,这样每个用户都可以得到他们自己独特的错误集。您希望分发工具并将工具作为一个单元下载,以便用户一次获得一套完整的工具,而不是一次一个。

最简单的方法是为用户提供指向网络共享的环境变量。您的userSetup.py可以使用它在用户启动时将整个共享的内容复制到用户;这样,用户可以获得相同版本的所有内容。作为整个过程的一部分,你需要小心删除任何现有的.pyc文件,因为剩下的pyc可以欺骗python使用错误的代码。

另一个需要考虑的选择是使用Maya模块文件。一旦为每个用户提供一个指向网络共享的模块文件,每个人都可以直接在网络共享上工作。对于数百名用户来说,它不能很好地扩展,但是十几个用户可以正常工作:请参阅http://techartsurvival.blogspot.com/2014/01/mayas-mildy-magical-modules.html

如果您想了解一些涉及的问题,请尝试: