小尹学python

导航

Python:模块、包导入和路径

from sanmple import first  # 导入包里的文件
first.fuc01()
first.fuc02()

from sanmple.second import func03  # 导入包里的文件的指定函数
import sanmple
v1 = sanmple.second.func04()
func03()

import sanmple.second as f  # 取别名,可以减少代码量,同时也可以处理重名情况
f.func04()

from sample2.xxx2 import *  # 导入所有函数
from sample2.xxx2 import func06,func07  # 导入相应的多个函数

# 找模块时只会去指定的路径找
# 执行脚本所在的目录和内置模块的默认目录
# 如何去指定路径去找
import sys
sys.path.append(r'D:\xx')
# import xx  # 导入D:\xx下的xx模块
# 以上有一个问题,如果把包压缩发给其他人,会导致路径不一致出错
# 解决问题:
import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
# os.path.abspath(__file__) :找到当前执行脚本的绝对路径
# os.path.dirname(os.path.abspath(__file__)往上再找一层路径,也即day14的文件夹
# 最后再把路径添加进去

# 注意:模块名不要与内置或第三方模块名字重合,如果重名,python会优先从项目路径去找

# 相对导入:只能用在包里(不推荐用)
# from . import xxx 导入同级别模块内容
# from .. import xxx 导入上一级别模块内容,导入几层就加几个点

print(__name__)  # __main__
# 当一个文件被解释器去执行时,__name__ = __main__
# 当文件被导入时,被导入文件的__name__ = 模块名
# 主文件一般开头
if __name__ == "__main__":  # 作为主文件的标志,也即入口文件
    pass

posted on 2021-10-22 14:27  小尹学python  阅读(332)  评论(0编辑  收藏  举报