所以我最近刚刚进入Python世界,并将其引导到为我自己制作的快速个人程序以及专业用于Django的Web应用程序设计。我已经学习了一些Python教程和大多数Django教程,并且尽可能地阅读Python文档。
我最近看到.pyc文件只是字节码(编译).py脚本,并且不会使Python语言更快,只有更轻和非人类可读。但是,在中低流量站点(例如,95%的网站)中,这与PHP的差别可以忽略不计(并且我发现Python的效率要高出数千倍)。
问题是:你能从没有.py文件的.pyc文件中执行Python程序吗?如果是的话,在Django中这也是可能的吗?怎么样?这是使网络应用程序“几乎闭源”的好方法吗?
答案 0 :(得分:3)
你可以从没有.py文件的.pyc文件中执行Python程序吗?
是。只需将.pyc文件放在通常使用.py文件的地方(当然,除了文本编辑器外)。
如果是,在Django中这也是可能的吗?怎么样?
没有区别。无论使用什么框架,解释器都以相同的方式处理文件。
让网络应用“几乎闭源”是一种好方法吗?
不是真的。反编译已编译的Python字节码是微不足道的。
答案 1 :(得分:0)
是的,你可以用py存在来执行pycs。对于由构建过程编译而不是在主机的文件系统中松散的站点来说,这是一个常见的技巧。您还可以将pyc压缩到存档中,并将存档放在解释器的路径中,以便您可以在一个块中管理整个文件集群(以及文件夹和子文件夹)。
OTOH不希望这条路线有太大的安全性,用Uncompyle
之类的东西很容易得到pyc的内容