import导入模块

import搜索路径


思考

为什么需要了解import的搜索路径?

大家试想一下 在工作中今年在一个项目中可能会导入某一个目录下的模块文件,那这个时候怎么样才能让Python解释器能够找到该模块进行调用呢?

  • 将这个模块拷贝一份到当前使用目录下 这种方式让模块太冗余
  • 将这个模块所在路径直接告诉Python解释器 让Python解释器能够搜索到这个模块 ,这种方式比较灵活。

如果想要告诉Python解释器 某某模块的位置,我们需要先知道他是根据什么来查找模块的?

路径

路径说明:

  • 从上面列出的目录里依次查找要导入的模块文件
  • 表示当前路径
  • 列表中的路径的先后顺序代表了python解释器在搜索模块时的先后顺序
程序执行时添加新的模块路径
sys.path.append('/home/it/xxx')
sys.path.insert(0, '/home/it/xxx')  # 可以确保先搜索这个路径
In [37]: sys.path.insert(0,"/home/python/xxxx")
In [38]: sys.path
Out[38]: 
['/home/python/xxxx',
 '',
 '/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',
 '/usr/local/lib/python3.5/dist-packages',
 '/usr/lib/python3/dist-packages',
 '/usr/lib/python3/dist-packages/IPython/extensions',
 '/home/python/.ipython']
重新导入模块

为什么需要重新导入模块?

  • 模块被导入后,import module不能重新导入模块,重新导入需用reload重新加载模块代码创建模块对象
导入指定目录下的模块的两种方式
  • 将模块所在路径再程序中添加到sys.path列表中 该方法灵活,但是程序重启后还需要再次 添加列表
  • 修改操作系统的PYTHON_PATH环境变量 export PYTHON_PATH=$PYTHON_PATH:路径

多模块开发注意点

  • import 模块名
    可以理解成地址复制也就是引用

  • from 模块名 import 功能名
    可以理解为内容复制就是深拷贝。也就是说修改了原来的模块,只有重新导入或者重启程序才有效

  • 多个模块要共享同一个数据的时候必须使用 import 模块名 这种方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值