考虑到我有一个名为" A"由几个模块和嵌套包组成。现在,我想将此包分发给用户,我不希望用户看到我的代码。我听说" .pyc"可以解编。所以,我只是想知道这个问题可能是其他替代方案。
如果有人在这方面提出一些想法,那将会很棒。
答案 0 :(得分:1)
实际上您几乎没有选择。首先,您可以将代码编译为 pyc 文件。然而,这可以通过反汇编库 dis 来规避,但这需要大量的技术知识。也可以使用py2exe将其打包为exe文件;这会将 pyc 文件转换为 exe 文件。这仍然可以拆卸,但增加了一个额外的层。您还有一些加密解决方案;例如,您可以使用 pyconcrete 来加密您的导入,直到它们加载到内存中。您也可以只加密整个应用程序,然后将解密器和启动器作为 C/C++ 应用程序(或任何其他编译语言)随它一起发送。最后,如果您对让 Python 运行自定义 C/C++ 代码感到满意,您还可以将您的私有代码放入 DLL 或 SO 中,然后直接为脚本调用它。
答案 1 :(得分:-1)
Python是一种解释型语言。这意味着如果你想分发pyc文件,你必须让它们在与你相同的操作系统/架构上运行,否则你将遇到微妙的问题。这一点,以及大多数代码可以在某种程度上被反编译的事实,都会促使我重新考虑你的用例。
您可以将您的软件包重新考虑为服务吗?