部署Python模块用于3D软件

4
我一直在开发一个相当广泛的Python模块库,用于自动化游戏/电影/电视中“3D角色开发”的耗时部分。
直到几个月前,我的所有代码都在Maya的专用Python解释器中运行,但是我的GUI是用PySide / PyQt构建的,因此可以在mac / windows / linux或其他几个图形程序中运行,例如NukeXSIMax
我真正想要弄清楚的是一种“简单”的方法,可以将我的代码分发给各种不同的人——>使用各种不同的操作系统——>可能使用各种应用程序(NukeXSIMax),这些应用程序又有自己专用的Python解释器。
显然的选择是pip和easy_install...这些模块显然是正确的方法,但不清楚用户如何在Maya / Nuke等附带的专用Python安装下安装/运行它们...虽然似乎可能(如此解释)。对于不太熟练的用户来说,这将是一个相当大的障碍。
任何帮助或指向正确方向的指导都将不胜感激。
1个回答

3
我不会说pip/easy_install是解决这个问题的“正确”方式。它们对于有动力、技术倾向的用户来说是相当好的(不算是“很好”),但即使在这种情况下,它们也存在一些问题(例如意外升级或删除)。最重要的是,它们是自愿选择的方法:除非你想要,否则没有人可以强制你使用pip。这意味着用户可能会无意或故意使自己处于非常不同的位置,这使得支持和维护成为一场噩梦。
在Maya中,我通过分发一个包含完整环境的压缩文件来获得非常好的运行效果 - 所有模块等等。 userSetup.py将该zip添加到路径中,并且Python的本地zipimport功能处理其余部分。这确保只有一个文件需要维护和分发。它还修复了遗留的.pyc文件在.py文件被移动或重命名后创建混乱的常见问题。由于这都是标准的python,我认为这对于使用2.6+版本的python的任何应用程序特定的python都有效,尽管我从未在Nuke或Max中尝试过。
主要问题将是具有.pyd或其他二进制组件的模块,通常这些模块在zip文件内无法正常工作。我包括一个引导程序,将这些解压到用户磁盘上的(可丢弃的)位置,并将其添加到路径中。

这里有一份详细的方法讨论,以及一些背景介绍


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接