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 "", line 1, in 
ImportError: No module named 'Music'
$ 

你可能感兴趣的:(Python模块、包、文件加载)