【问题标题】:Maya Python compile for earlier versionMaya Python 编译为早期版本
【发布时间】:2016-01-28 15:00:08
【问题描述】:

我已经使用 zip 制作了一个分发工具的系统。 zip 中的工具似乎只喜欢从 pyc 运行。我的一位动画师正在使用 Maya 2013,它具有较旧版本的 python (2.6.4)。当他尝试运行我的文件时,我得到一个幻数错误。

如何将我的脚本编译为旧版本的 python?

【问题讨论】:

  • 相关:What's the bad magic number error?。也许检查接受的答案。删除所有 .pyc 文件,然后尝试在 Maya 2013 中执行您的代码。编辑:您有权访问 .py 文件吗?
  • 幻数是您在比运行它的程序更新的版本中编译代码时遇到的错误。所以在这种情况下,它在 Maya 2.7.3 中编译,但动画师使用的是 Maya 2013,它有 2.6.4。我会尝试唯一的py。我尝试过 py 和 pyc,但没有成功。
  • 如果删除 .pyc 文件可以解决您的问题,您可能需要在脚本开头添加 sys.dont_write_bytecode = True(在 Python 2.6 中添加)以避免生成字节码。

标签: python version maya


【解决方案1】:

如果您要分发 pyc 文件,则需要通过在正确版本的解释器上运行 py_compile 来为您所针对的 python 主要版本“编译”它们。您可以使用 2.6.4 解释器执行此操作,而无需实际运行 maya,因此如果您没有相同的 maya 版本但可以获取解释器,它将创建与 2.6.4 兼容的 pycs。

但是,您也应该能够分发压缩的 .py 文件,这些文件应该与版本无关(主要问题是 2.7 支持一些 2.6 不具备的功能,例如 dict comprehensions 和 OrderedDict)。

最大的问题是二进制文件:任何依赖 .so 或 .pyd 模块的代码都可能无法在解释器版本之间工作。我通常最终不得不将特定于版本的二进制文件打包到 zip 中并在启动时提取它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多