如何绕过编译阶段运行python程序
我只是想知道,如果您引用的是python的默认实现-CPython,是否可以以完全解释的方式运行python程序,从而可以跳过编译您不能跳过编译 运行该命令时:如何绕过编译阶段运行python程序,python,Python,我只是想知道,如果您引用的是python的默认实现-CPython,是否可以以完全解释的方式运行python程序,从而可以跳过编译您不能跳过编译 运行该命令时: python <script-name>.py python.py Python(在非常广泛和基本的意义上)执行以下步骤: Python首先解析您的代码文件。结果是一个抽象语法 树(又称AST) 然后将AST传递给Python编译器。Python编译器 为Python虚拟机生成字节码 然后虚拟机执行代码 第二步在Pyth
python <script-name>.py
python.py
Python(在非常广泛和基本的意义上)执行以下步骤:
第二步在Python解释器过程中至关重要。如果没有它,您的应用程序将无法使用AST,虚拟机将无法执行任何操作。汇编是一个必要的过程。这不是可选的,这是强制性的要完全回答这个问题,由于它的模糊性,需要比我有时间做的更仔细的回答,但作为记录:
- CPython实现将源模块编译成字节码
- 导入模块时,解释器将查找编译的字节码 比源文件更新的文件,如果找到,则使用它
- 否则,解释器将尝试编写模块的编译字节码 在将来的导入中可以找到它-无法写入文件 这不是一个错误
- 字节码由解释器的
循环解释,而不是 翻译成机器代码eval
Jython的目标是Java虚拟机字节码,许多JVM实现都应用了JIT技术,同样是基于每次运行。Yes。。。打开REPL会话并编写代码。啊,提及其他Python实现是个好主意。我可能错误地认为OP只是指CPython+1人们通常是这样,但问题可能是缓存字节码或编译为机器码。