Maya Python 创建和使用压缩包?
Maya Python Create and Use Zipped Package?
谁能准确描述如何在 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 加载文件,就好像里面的文件是我的脚本文件夹中的任何其他模块一样(最好不要解压缩)。我该怎么做呢?
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
模块无法在 压缩文件中添加路径。有一个解决方法 here。您可能还需要注意 sys.path 的顺序:您要确定自己是在使用压缩文件还是磁盘上的松散文件。
您可以通过仅压缩 .pyc 文件而不是整个文件来节省 space,顺便说一句。
PS 注意在 sys.path.append
中使用左斜线:它们必须被转义 \
-- 右斜线在 windows 和 *ix [=17 上都有效=]
谁能准确描述如何在 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 加载文件,就好像里面的文件是我的脚本文件夹中的任何其他模块一样(最好不要解压缩)。我该怎么做呢?
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
模块无法在 压缩文件中添加路径。有一个解决方法 here。您可能还需要注意 sys.path 的顺序:您要确定自己是在使用压缩文件还是磁盘上的松散文件。
您可以通过仅压缩 .pyc 文件而不是整个文件来节省 space,顺便说一句。
PS 注意在 sys.path.append
中使用左斜线:它们必须被转义 \
-- 右斜线在 windows 和 *ix [=17 上都有效=]