从 python 源代码构建二进制 deb 包

从 python 源代码构建二进制 deb 包

我已经创建了 python 包(使用Ubuntu Quickly)并想要创建deb包。不幸的是,快速构建包使用源 python 文件(.py)并且我不想包含源文件。Bazaar用于构建包的插件也存在同样的问题。

如何制作没有源的deb 包,在安装过程中编译 .py 文件,这样系统中就没有源文件了?

答案1

Python 是一种解释型脚本语言。你不能仅仅因为中间的 .pyc 文件是为你的系统,在其他地方没有意义。您分发源代码,然后进行即时编译。

这并不是说你不能直接分发 .pyc 文件。PEP 3147允许这样做并设置一个结构,但它是有代价的,我甚至不确定它是否会阻止你重新生成源代码(通过各种自省方法) - 但这不是 Quickly 的设计目的;它不会帮助你构建这样的包。

如果你尝试分发闭源应用程序,可以使用 py2exe(仅限 Windows)和bbfreeze(全部),但没有一个是完美的或完全不可逆转的。你可以看看混淆方法如果您想进一步保护您的来源。

答案2

实际上没有办法隐藏 Python 源代码并阻止用户知道您对他们的系统做了什么。但是,这并不意味着程序必须是开源的。这取决于许可证,您可以使用您想要的许可证。能够阅读源代码并不意味着用户可以编辑或重新分发它。这取决于你。这适用于所有高级语言。例如,Web 应用程序的源代码始终对用户可见。这并不意味着您可以在未经开发人员许可的情况下将其用于其他项目。

您可能想了解一下 Geanie 语言。它是一种新语言,具有与 Java/C# 类似的功能,但语法类似于 Python。Genie 编译为 C,这意味着它独立于平台,而且速度极快。当然,C 编译为本机代码。

不幸的是,Quickly 还没有适用于 Genie 的模板。

相关内容