Python模块、包、文件加载

一、模块与包的导入
内置的sys模块中包含一个sys.path的列表,其中存放了构成Python路径的目录列表
存放顺序:

1、第一个目录是程序所在目录,即便程序是从其他目录中调用
2、如果设置了环境变量PYTHONPATH,则其中指定的路径作为sys.path中的下一个路径
3、最后的路径为访问Python标准库所需(安装Python时设置)

二、加载字节码编译的代码
加载的时候自动生成字节码,不需要提前显示编译产生(如Java class文件,)以字节码编译的版本加载到内存中
加载顺序:

1、查找与模块的.py文件同名,但以扩展名.pyo结尾的文件(pyo是模块最优化的字节码编译版本)
2、如果.pyo文件不存在或者比.py文件陈旧(已经过期),查找扩展名为.pyc的同名文件(非最优字节码编译版本)
3、如果找到了最新的字节码编译版本就对其加载;否则,Python会加载.py文件,并将其编译成字节码编译的版本

一个快速简单检测模块名是否与标准库重复的方法:

$ python -c "import os"    # 无输出或者其他输出表明 模块 os已经被使用
$ python -c "import Music"  # 产生异常,表明尚无模块或顶级目录使用该名称
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named 'Music'
$ 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 模块和包 一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是...
    go以恒阅读 6,734评论 0 4
  • Distutils可以用来在Python环境中构建和安装额外的模块。新的模块可以是纯Python的,也可以...
    MiracleJQ阅读 8,334评论 0 1
  • 1. 认识模块 1.1 什么是模块 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.p...
    hswangxun阅读 3,757评论 0 1
  • 为了更美好的未来 我将眼泪化作汗水 和辛勤付出作伴 为了让自己变得更加优秀 我将眼泪融化 自信的笑容爬满面庞 眼泪...
    娇阳白雪阅读 897评论 0 0
  • 笔记更新于2019年11月10日,摘要:Python的基本介绍;Python下载及安装使用教程 写在前面:本文更新...
    三贝_阅读 2,571评论 0 0