<p>你提出了一些不同的问题,下面是一些回答:</p>
<p>1)从技术上讲,Python不会被解释(通常)-它被编译成字节码,字节码在虚拟机上运行。在</p>
<p>所以Python不提供可执行文件,因为它运行字节码,而不是机器代码。
您也可以问问Java为什么不生成可执行文件。
虚拟机的标准优势是适用的:一个重要的优点是简化的跨平台开发体验。在</p>
<p>如果不希望源代码可用,可以只分发.pyc(编译字节码)文件。<a href="http://docs.python.org/release/2.7.2/tutorial/modules.html#compiled-python-files" rel="nofollow noreferrer">See this reference</a>。在</p>
<p>2)这里,你在谈论动态语言和静态语言。当然,这是有权衡的。正如您所提到的,动态语言的一个缺点是,您会得到更多的运行时错误,而不是编译时错误。在</p>
<p>当然,也有相应的优势。我将为您介绍一些讨论双方的资源:</p>
<ul>
<li><a href="https://stackoverflow.com/questions/125367/dynamic-type-languages-versus-static-type-languages">Dynamic type languages versus static type languages</a></li>
<li><a href="https://stackoverflow.com/questions/42934/what-do-people-find-so-appealing-about-dynamic-languages">What do people find so appealing about dynamic languages?</a></li>
<li><a href="http://research.microsoft.com/en-us/um/people/emeijer/Papers/RDL04Meijer.pdf" rel="nofollow noreferrer">http://research.microsoft.com/en-us/um/people/emeijer/Papers/RDL04Meijer.pdf</a></li>
</ul>
<p>3)非常正确。正如您需要安装javavm来运行Java,perl来运行perl,等等</p>
<p>关于你的最后一点:
在虚拟机中运行的整个想法是,你可以安装这个虚拟机一次,然后运行许多不同的应用程序。通过将整个VM与每个应用程序捆绑在一起(比如py2exe),您就违背了这个概念。所以是的,你必须按尺寸来支付成本。在</p>