在我的操作系统中,python3版本是python3.5.3。
mkdir workspace
cd workspace
vim print.py
print("i am learning")保存并退出。
python3 print.py
i am learning据我所知,python源文件在执行时被解析并编译成pyc文件。
ls
print.py工作空间目录中没有pyc文件,那么编译好的print.py文件在哪里?
sudo find / -name ".pyc"find命令仍然无法搜索print.pyc等pyc文件。python3 -m compileall可以手动创建print.py编译文件,print.py自己创建的编译文件在哪里?
在执行python3 print.py之后,python3是否会删除print.pyc
发布于 2019-12-16 23:20:15
这是我几年前刚开始学习python时遇到的一个大问题。Python就像任何其他oop编程语言一样,它在程序执行之前进行编译。当python编译它的程序时,它会创建bite代码,您可以在名为dis的标准库中看到该代码。
import dis
print(dis.dis(your_program))有时(并非总是) python会为正在运行的程序创建.pyc文件,以提高,加快导入模块的加载速度,但不会改善执行时间。所以希望你能直观地理解.pyc,而且.pyc只有在你的模块被另一个模块导入时才会创建。
例如,假设您有这样的print.py (让我们修改它吧)
def return_print_statment(statement):
print('Printed version: ', statement)假设此模块由另一个名为views.py的自定义模块导入。在views.py中有一个将使用return_print_statment的module_view
from print import return_print_statment
def module_view():
...
return_print_statment(output)因此,在编译过程中,既然您已经导入了python,那么print.py将为它生成print.pyc文件。在Python2.0中,python会将.pyc放在同一文件夹中程序旁边,但是在python3中,python会在同一目录中创建单独的名为__pycache__的文件夹来放置这些字节码,而不是在同一文件夹中创建。
发布于 2019-12-01 18:02:25
python3 -m编译所有。
编译当前目录中的所有.py文件。
http://effbot.org/pyfaq/how-do-i-create-a-pyc-file.htm
https://stackoverflow.com/questions/59124325
复制相似问题