python _ + django,是编译代码吗?

时间:2009-09-27 14:31:52

标签: python

只是从.net背景中查看python。

python的编译方式是.net吗? 如果是的话,它是否可以被混淆,是否比.net编译的代码混淆了或多或少?

几乎每个网站主机(unix)都支持django和python?

6 个答案:

答案 0 :(得分:10)

Python语言有很多实现;对于生产使用来说,这三个肯定是可靠的,成熟的和完整的是CPythonIronPythonJython。所有这些通常都被编译为某种形式的字节码,也称为中间代码。从源到字节码的编译可以在需要时进行,但如果您愿意,也可以提前进行;然而Google App Engine可以免费运行包括Django在内的小型Python网络应用程序,因为它的一个限制要求你上传源代码而不是编译代码(我知道没有其他主机强加相同的限制,但我知道没有给你这么多资源免费换取; - )。

你可能最熟悉IronPython,这是一款微软产品(尽管我认为,这是第一款完全开源的微软产品):在这种情况下你可以确定“编译得像.net”,因为(部分).net(更确切地说,.net和silverlight)。因此,它不能比.net(意思是任何其他.net语言)更多或更少混淆和/或安全。

Jython适用于Java虚拟机JVM,就像IronPython适用于Microsoft的公共语言运行时(又称CLR)一样。 CPython有自己的专用虚拟机。

为了完整性,其他实现(尚未推荐用于生产用途)包括pypy,这是一种高度灵活的实现,支持许多可能的后端(包括但不限于.net); unladen swallow,专注于发展CPython以使其更快; pynie,Parrot虚拟机的Python编译器; wpython,基于“wordcode”而不是“bytecode”的重新实现;毫无疑问,很多人都是。

CPython,IronPython,Jython和pypy都可以运行Django(其他实现也可能足够完成,但我不确定)。

答案 1 :(得分:2)

我不知道安全部分,但是。

  • 解释Python。像PHP一样。 (它变成了CPython读取的字节码)
  • Django只是Python上的framework
  • Python can be compiled.
  • 并非所有主机都支持python + django。

答案 2 :(得分:2)

您不必担心模糊代码,特别是因为它将在您的服务器上运行。

无论如何,您不应该将代码放在公共目录中。使用django(与PHP相对应)的正确做法是使代码可以通过Web服务器访问,但不能由公众访问。

如果您的服务器的安全性遭到破坏,那么您还有其他事情需要担心......

答案 3 :(得分:1)

混淆是错误的安全性。唯一比没有安全性更糟的是虚假安全。为什么你会混淆网络应用程序呢?

Python被编译为字节码并在虚拟机上运行,​​但通常作为源代码分发。

除非你真的计划在“几乎每个网络主机”上运行你的webapp,否则这个问题无关紧要。有很多很好的主机支持python和django。

答案 4 :(得分:0)

.NET中的代码混淆主要是更改变量名称以使其更难理解反汇编代码的问题。是的,你也可以用CPython做这些技巧。

现在,为什么你想要来完全是另一个问题。它实际上并没有为您提供任何安全性,并且不会阻止任何人窃取您的软件。

答案 5 :(得分:-1)

Python是解释语言。但是你可以使用Freeze将python程序编译成Unix可执行文件。