模块基础概念

模块(Module)
  • 一个.py文件为一个模块
  • 可维护性
  • 可扩展性
  • 每个模块有独立的命名空间
模块分类
  • 内置标准模块
  • 第三方开源模块
  • 自定义模块
模块调用
  • import module
  • from module import xx
  • from module.xx.xx import xx as rename
  • from module.xx.xx import *
模块查找路径
  • sys.path
  • 按照路径列表顺序去查找模块名,只要找到就停止
  • 空元素代表当前目录,所以自定义当前目录模块会被优先导入

import sys

print(sys.path)
['',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages']

包(Package)
  • 把相关的模块放在一个文件夹中,这个文件夹就被称为包
  • 文件夹内必须存在__init__.py文件,该文件用于标识该文件夹为包
跨模块导入
  • 添加环境变量,把父级路径添加到sys.path中,从父级开始查找

import sys ,os

__file__的是打印当前被执行的模块.py文件相对路径,注意是相对路径

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))
sys.path.append(BASE_DIR)

from proj import settings

绝对&相对导入
  • .. 上层路径
  • . 当前路径
posted @ 2018-05-02 09:51  菜漫游  阅读(142)  评论(0)    收藏  举报