理解python编译

时间:2014-03-21 07:03:05

标签: python compiler-construction interpreter

我在执行.py文件时看到了一些区别。我观察了两个案例,

1)当我使用python mypython.py

运行.py文件时

我得到了结果。但是.pyc文件没有在我的文件夹中创建。

2)当我使用python -c "import mypython"

运行.py文件时

我得到了相同的结果。但.pyc文件是在我的文件夹中创建的。

我的问题是为什么第一个案例没有创建.pyc文件?

2 个答案:

答案 0 :(得分:1)

当您需要在另一个脚本或程序中使用文件的内容时,通常会使用导入,请参阅What does python file extensions, .pyc .pyd .pyo stand for?。因此,为了更具体地回答这个问题,创建.pyc是为了便于以后访问文件的内容,并且仅在使用import命令时创建。

答案 1 :(得分:0)

Python仅为导入的模块保存预编译的.pyc文件,而不是为您正在运行的主脚本保存。

将程序作为主程序运行或将其作为模块导入并不完全相同,但非常相似,因为在模块中,顶级的所有内容都在导入时执行。

请注意,对于主程序,源代码也被完全解析和编译(例如,如果在最后一行中有语法错误,则不执行任何操作)。不同之处仅在于编译结果未保存回磁盘。