有人能详细描述某人如何在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加载,好像里面的文件是我脚本文件夹中的任何其他模块(最好不解压缩)。我该怎么做呢?
答案 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