import方法导入顺序
1. Python 标准库模块
2. Python 第三方模块
3. 应用程序自定义模块
import方法搜索路径
In [5]: sys.path
Out[5]:
['',
'/usr/bin',
'/usr/lib/python35.zip',
'/usr/lib/python3.5',
'/usr/lib/python3.5/plat-x86_64-linux-gnu',
'/usr/lib/python3.5/lib-dynload',
'/home/itcast/.local/lib/python3.5/site-packages',
'/usr/local/lib/python3.5/dist-packages',
'/usr/lib/python3/dist-packages',
'/usr/lib/python3/dist-packages/IPython/extensions',
'/home/itcast/.ipython']
从上面列出的目录中依次查找要导入的模块文件
” 表示当前路径
列表中的路径的先后顺序代表了python解释器在搜索模块时的先后顺序
添加新的模块路径
sys.path.append('/home/itcast/xxx')
sys.path.insert(0, '/home/itcast/xxx') # 可以确保先搜索这个路径
重新 导入模块
模块被导入后, import module 不能重新导入模块,重新导入需要用 reload
多模块开发时的注意点
from a import *
from b import *
from c import *
def do():
print 'it is main module'
若c.py中有函数要调用a模块中的方法,我们不能认为全部方法已经import到主模块里,就可互相调用了。
其实不然,我们一定要在c.py中加句from a import *这样,c.py的函数才可调用a.py的。
而在主模块里,就不用再加from a import *,因为a模块被引用到c模块,c模块又被引用到main中,a模块也就”跟进来”了。
但是python是”从下到上”引用的,因此定义在main.py或主模块里的方法,不能被a.py,b.py,c.py中的函数引用,因为main.py在最上层