我是新来的python,我从来没有编译过Python代码的可执行文件。我很熟悉的语言是C,C++和Java,我从来没有遇到过让你从本身修改代码的语言,就像使用Python的方法有exec
。执行exec函数的python代码是否被编译为可执行文件?
对于下面的代码,
a = 500
code = raw_input()
exec (code)
当我请输入作为,print (a)
程序显示在a
值。 所以这意味着变量a
属于代码的范围内。
我不明白会发生什么,如果我们尝试使用程序如py2exe
将python代码转换为可执行文件。 方法exec
仍然有效吗?如果它确实起作用,那么py2exe
在编译程序时是否会带来整个Python编译器和解释器?
py2exe ** always **将完整的Python解释器嵌入生成的二进制文件,100%的时间。这就是它的工作原理。 –
你可能想阅读[this](http://stackoverflow.com/questions/3265357/compiled-vs-interpreted-languages)来学习编译和解释......(不用担心Java for现在,这很复杂)。 – Lunaweaver
Nuitka http://nuitka.net/pages/overview.html可能更接近于以您的意思创建Python中的可执行文件。它生成C++,然后编译并链接。处理'eval'的源代码在这里:http://pydoc.net/Python/Nuitka/0.5.14.2/nuitka.nodes.ExecEvalNodes/ – cdarke