我是新來的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