Python import module 源码处理逻辑简记
来源:互联网 发布:数据对接的接口及方式 编辑:程序博客网 时间:2024/06/13 12:56
总的入口是load_module
导入的文件存在py文件,走load_source_module
1. 获取py文件最新时间
2. 尝试打开pyc,打开失败,则重新编译,打开成功,从pyc里面取出magic和时间戳,有一个不一样,就重新编译pyc。如果都一样,则从pyc读取代码段。
3. pyc打开或者magic、时间戳校样失败,则重新编译pyc。
3.1 对py文件进行AST解析,返回PyCodeObject,先通过open打开pyc,在open的文件描述通过fdopen转换成文件操作指针,之后,依次写入magic、timestamp、code。
4. 执行代码
4.1 代码来自从pyc读取的代码
4.2 代码来自对py进行AST返回之后的代码
导入的模块不存在py,只有pyc文件。走load_compiled_module
0 0
- Python import module 源码处理逻辑简记
- 【Python】import class/import module
- python module import 问题
- python : import module
- python module package import
- Python: import Module and Class
- python中import module问题
- Python - cannot import OpenCV module?
- python语法[module/package+import]
- python 的 from . import module
- Python教程学习简记13--Python Module 模块
- Python嵌入C++详解(2)--Import Module
- python语法31[module/package+import]
- python import no module错误解决
- Python的点点滴滴(Dynamic Module Import)
- python package module import 完全总结
- Python import module 的几种情况
- python语法31[module/package+import]
- 抽象类
- UVa
- exterC
- yum安装本地rpm软件
- codeforce789A
- Python import module 源码处理逻辑简记
- java对象方法wait,notify
- 2017蓝桥模拟赛 猜算式
- Spring 注解方式实现AOP
- 程序怎么都执行不对,但也不报错,那么你可以…
- Gym
- mod_wsgi.so+django+python部署了几天。。惭愧惭愧
- Resnet_50网络结构详解
- Q97:怎么用三角形网格细分Bezier曲面——以Utah Teapot为例