【问题标题】:How do I compile multiple py files as one?如何将多个 py 文件编译为一个?
【发布时间】:2013-07-08 16:33:07
【问题描述】:

我是 Python 新手,完全不知道从哪里开始完成这项工作。

我已经编写了许多需要编译到单个 .pyc 文件中的小模块(maya 的工具集)。有没有一个模块可以做到这一点?或者你能告诉我从哪里开始吗?教程?我什至不知道要查找什么术语。

【问题讨论】:

  • 是什么让你认为你需要这样做?
  • 因为我不想将 50 个不同的 python 文件加载到 Maya 中。能够只添加一个并访问所有内容不是更好吗?
  • 不,最好在一个文件夹中有 50 个文件。加载 50 个不同的文件并不比加载 1 个更复杂,它只是一个调用。但是从管理、扩展和使用的角度来看,最好有 50 个文件。另一方面,如果您想混淆您的代码,请不要使用 python,而是使用 c++。然而 python 允许你压缩文件夹(并称它为鸡蛋),所以用户只能看到一个文件夹,它仍然是 50 个单独的文件。
  • 这是一个完全合法的问题(并且得到了很多讨论 - 请参阅我的答案中的链接)。我不认为反对票是有道理的
  • 这是一个合法的问题。例如,在安装程序中为 python 脚本应用程序(例如 Maya、Rhino...)部署插件时,拥有一个文件要简单得多。特别是如果您使用 WiX 构建安装程序。

标签: python module compilation maya pyc


【解决方案1】:

你甚至不需要做一个鸡蛋,你可以把你的文件压缩起来,然后把压缩文件放到你的 python 路径上。 Maya 的 python 版本默认包含 zipimport 模块,因此只要 maya 可以找到您的 zip 文件,它就“正常工作”。

以下是关于工具分发整个主题的一些讨论,您可能会觉得有用:

http://tech-artists.org/forum/showthread.php?3271-Distribution-techniques-for-external-Python-tools&highlight=distribute

http://tech-artists.org/forum/showthread.php?3987-Maya-GitHub-and-Script-Paths-for-Mel-and-Python-How-Would-You-Do-It&highlight=distribute

http://tech-artists.org/forum/showthread.php?3752-Best-Way-to-Share-Your-Scripts&highlight=distribution

【讨论】:

    【解决方案2】:

    标准库中的compileall 模块将编译目录中的所有文件,但仍不会生成单个 .pyc 文件。 effbot.org 也给出了它的用法示例。我不知道是否可以从多个模块中创建一个 pyc 文件。

    但是,我猜你正在考虑创建一个python egg,它确实会从一个包中组合在一起的一系列文件中生成一个文件,我认为这正是你想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-04
      • 2020-06-02
      • 2016-07-23
      • 1970-01-01
      • 2021-10-16
      • 2021-04-28
      • 2021-04-05
      • 2019-07-03
      相关资源
      最近更新 更多