首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >玛雅Python创建和使用压缩包?

玛雅Python创建和使用压缩包?
EN

Stack Overflow用户
提问于 2015-09-17 13:45:14
回答 1查看 406关注 0票数 1

有人能准确描述如何在Maya中创建和执行python包吗?很多关于这方面的教程和问题都是中间的,并且假定了一定的知识。我需要一个简单的例子作为起点。

代码语言:javascript
复制
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加载文件,就好像里面的文件是位于我的脚本文件夹中的任何其他模块一样(最好不用解压缩)。我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-17 21:14:36

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

代码语言:javascript
复制
import sys
sys.path.append('path/to/archive.zip')

import thingInZip
thingInZip.do_something()

唯一的问题是深度: zipImporter不需要嵌套目录结构。所以这没问题:

代码语言:javascript
复制
 ziparchive.zip
   +--- module1.py
   +----module2.py
   +----package_folder
     |
     +-- __init.__py
     +-- submodule1.py
     +-- submodule2.py
     +--- subpackage
       |
       +- __init__.py

但这并不是:

代码语言:javascript
复制
ziparchive.zip
 + --- folder
    +- just_a_python_file_not_part_of_a_package.py

另外,site模块不能在zip中添加路径。有一个解决办法,这里。您还可能需要小心您的sys.path的顺序:您希望确保您知道您是从压缩的文件还是从磁盘上的松散文件中工作。

您可以通过只压缩.pyc文件而不是整件事情来节省空间。

PS注意在sys.path.append中使用左斜杠:它们必须是转义的\\ --右斜杠在窗口和*ix上都可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32631910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档