美文网首页
Python模块、包、文件加载

Python模块、包、文件加载

作者: probiecoder | 来源:发表于2018-12-14 13:14 被阅读0次

    一、模块与包的导入
    内置的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'
    $ 
    

    相关文章

      网友评论

          本文标题:Python模块、包、文件加载

          本文链接:https://www.haomeiwen.com/subject/mqxghqtx.html