Python 分发.pyc文件有哪些限制?
我已经开始用Python开发一个商业应用程序,我正在考虑如何分发该应用程序 除了显而易见的(使用适当的商业许可证分发源代码)之外,我正在考虑只分发Python 分发.pyc文件有哪些限制?,python,pyc,Python,Pyc,我已经开始用Python开发一个商业应用程序,我正在考虑如何分发该应用程序 除了显而易见的(使用适当的商业许可证分发源代码)之外,我正在考虑只分发.pyc文件,而不分发相应的.py源代码。但我对Python的兼容性保证还不够熟悉,不知道这是否可行,更不用说这是否是个好主意了 .pyc文件是否独立于底层操作系统?例如,在64位Linux机器上生成的.pyc文件能否在32位Windows机器上工作 我找到了.pyc文件,但是主要版本和次要版本呢?例如,使用Python3.1.5生成的文件是否与Pyt
.pyc
文件,而不分发相应的.py
源代码。但我对Python的兼容性保证还不够熟悉,不知道这是否可行,更不用说这是否是个好主意了
.pyc
文件是否独立于底层操作系统?例如,在64位Linux机器上生成的.pyc
文件能否在32位Windows机器上工作
我找到了.pyc
文件,但是主要版本和次要版本呢?例如,使用Python3.1.5生成的文件是否与Python3.2.x兼容?或者用Python2.7.3生成的.pyc
文件是否与Python3.x版本兼容
编辑:
首先,我可能不得不安抚那些不愿意发布消息来源的利益相关者。在没有源代码的情况下分发.pyc
,可能会给他们带来一定程度的舒适感,因为这需要额外的反编译步骤才能获得源代码,即使这一步骤有些琐碎。只是一个足以让诚实的人保持诚实的障碍
例如,使用Python3.1.5生成的文件是否与Python3.2.x兼容
没有
或者,使用Python2.7.3生成的.pyc文件是否与Python3.x版本兼容
绝对不是
我正在考虑只分发.pyc文件,而不分发相应的.py源
Python字节码是高级的,可以进行简单的反编译。您当然可以只分发.pyc文件。正如Cat所提到的,不,它将与不同的Python主要版本不兼容。它可能会阻止一些人查看源代码,但是.pyc文件非常容易反编译。基本上,如果你能编译它,你就能反编译它
您可以使用像py2exe/py2app/freeze这样的二进制打包程序。我从未尝试过它们,但如果有人愿意,他们仍然可以反编译它们 正如Cat所说,pyc文件不是跨版本安全的。尽管你试图对用户隐藏的内容决定了你需要做什么 至于源代码,在分布式应用程序中没有隐藏Python源代码的好方法。如果你只是想隐藏一些特定的细节,你可以将它们打包到一个C扩展中——这将很难反编译
因此,如果您担心代码的使用,请在代码中附加一个不使用的许可证,或者将您不想被窃取的部分翻译成编译语言。如果您只是希望代码不是明显的Python,那么您可以创建一个二进制可执行文件来包装Python代码(尽管如果有人从文件中提取它们,它不会隐藏实际的细节)。让我好奇的是,是否有(推荐的,或任何)以某种方式混淆Python代码并分发它的方法?有时世界迫使我们做一些愚蠢的事情。谢谢你的回答!我所知道的隐藏python代码的最好(唯一?)方法是在服务器上运行它,服务器上有客户端连接的API。这样他们就不会“看到”代码。