【问题标题】:Run compiled Python运行编译的 Python
【发布时间】:2013-11-26 11:25:42
【问题描述】:

所以我最近才进入 Python 的世界,并将其引导到为我自己和专业使用 Django 设计的 Web 应用程序设计的快速、个人程序上。我学习了一些 Python 入门教程和大多数 Django 教程,并且尽可能地阅读 Python 文档。

我最近发现 .pyc 文件只是字节码(编译后的).py 脚本,不会让 Python 语言更快,只会更轻且不可读。然而,在中低流量网站(比如说,95% 的网站)中,这与 PHP 的差异可以忽略不计(我发现 Python 的生产力要高出数千倍)。

问题是:你可以从没有 .py 文件的 .pyc 文件执行 Python 程序吗?如果是,这在 Django 中也可以吗?如何?这是让网络应用“几乎闭源”的好方法吗?

【问题讨论】:

    标签: python django


    【解决方案1】:

    你可以从没有 .py 文件的 .pyc 文件执行 Python 程序吗?

    是的。只需将 .pyc 文件放在通常使用 .py 文件的任何位置(当然,文本编辑器除外)。

    如果是,这在 Django 中也可以吗?怎么样?

    没有区别。无论使用什么框架,解释器都以相同的方式处理文件。

    这是让网络应用“几乎闭源”的好方法吗?

    不是真的。反编译编译好的 Python 字节码很简单。

    【讨论】:

    • 有没有更稀有或更难反编译 Python 解释器/编译器?
    【解决方案2】:

    是的,你可以在没有 py 的情况下执行 pycs。对于通过构建过程编译而不是松散地存在于主机文件系统中的站点来说,这是一个常见的技巧。您还可以将 pycs 压缩到存档中,并将存档放在解释器的路径中,这样您就可以在一个块中管理整个文件集群(以及文件夹和子文件夹)。

    OTOH 不希望这条路线有太多的安全性,使用 Uncompyle 之类的东西很容易获得 pycs 的内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-20
      • 2013-12-04
      • 2011-05-31
      • 1970-01-01
      相关资源
      最近更新 更多