名字的查找顺序
在 Python 中,模块名字的查找顺序是:
当前目录
环境变量 pythonpath 所包含的目录
Python 默认安装路径下的目录
如果同一个模块名字在多个目录下都存在,Python 会按照上述顺序优先使用在前面的那个目录下的模块。同时,Python 可以使用 sys.path 查看模块搜索路径。
找不到文件路径怎么办?
1. 把模块所在的路径添加到sys.path中
import sys
sys.path.append(r'D:\Python27\day20\aaa\bbb')
2. 使用from...import句式
from aaa.bbb.ccc import m1
from aaa.bbb.ccc.m1 import f1
f1()
m1.f1()
相对导入和绝对导入
"""在导入模块的时候,模块的查找始终以执行文件所在的路径为准"""
绝对导入:
它始终是以执行文件所在的sys.path路径为基准查找
相对导入:
"""
.(句点符)
. 代表的是当前路径
.. 代表的是上一级路径
"""
# 相对导入可以打破始终以执行文件及准的查找顺序
from .ccc import m2
from .ccc.ddd import m2
只要py文件中出现了相对导入语句(.开头的语句),那么,这个文件就不能当成执行文件了,只能被导入<