Maya Python创建和使用压缩包?

时间:2015-09-17 13:45:15

标签: python scripting zip maya

有人能详细描述某人如何在Maya中创建和执行python zip包吗?关于这一点的许多教程和问题都跳到了中间并且承担了一定的知识。我需要一个简单的例子作为起点。

Folder/
    scriptA.py
    scriptB.py
    scriptC.py

ScriptA:
    Import ScriptB
    Import ScriptC

Create zip of Folder

In Maya
    Code to run Folder as if not zipped
    ScriptA.foo()

在文件夹中我们有三个脚本。 ScriptA引用了另外两个。我用像winrar这样的程序压缩文件夹。在maya中,我想从这个zip加载,好像里面的文件是我脚本文件夹中的任何其他模块(最好不解压缩)。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

您的python路径上的任何zip都被视为文件夹,因此:

import sys
sys.path.append('path/to/archive.zip')

import thingInZip
thingInZip.do_something()

唯一的问题是深度:zipImporter不期望嵌套目录结构。所以这没关系:

 ziparchive.zip
   +--- module1.py
   +----module2.py
   +----package_folder
     |
     +-- __init.__py
     +-- submodule1.py
     +-- submodule2.py
     +--- subpackage
       |
       +- __init__.py

但这不是:

ziparchive.zip
 + --- folder
    +- just_a_python_file_not_part_of_a_package.py

site模块也无法在 zip中添加路径。有一个解决方法here。您可能还需要注意sys.path的顺序:您要确保知道自己是使用压缩文件还是磁盘上的松散文件。

你可以通过仅压缩.pyc文件而不是整个文件来节省空间,顺便说一句。

PS小心在sys.path.append中使用左斜杠:它们必须被转义\\ - 右斜杠在两个窗口上工作* ix