1. import 搜索路径
![f17b9c6042fe5b781dcd011689c322fb.png](https://i-blog.csdnimg.cn/blog_migrate/3dd26b877e054691ff514799c9f023a6.jpeg)
路径搜索
从上面列出的目录里依次查找要导入的模块文件
‘’ 表示当前路径
列表中的路径的先后顺序代表了python解释器在搜索模块时的先后顺序
程序执行时添加新的模块路径
sys.path.append('/home/itcast/xxx')sys.path.insert(0, '/home/itcast/xxx') # 可以确保先搜索这个路径In [37]: sys.path.insert(0,"/home/python/xxxx")In [38]: sys.pathOut[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']
2. 重新导入模块
模块被导入后,import module不能重新导入模块,重新导入需用reload
![d5d811ee80c8edf2d913fdc46062b8ea.png](https://i-blog.csdnimg.cn/blog_migrate/0c6194830e77efed1aa4c89922c088cc.jpeg)
![e5f4819d78aa978f94e0427f78b7eb13.png](https://i-blog.csdnimg.cn/blog_migrate/e73244d88a8eadb823b94373ac9b2928.jpeg)
![f0d3ad303caf0b8c8a8ee7d5763c5892.png](https://i-blog.csdnimg.cn/blog_migrate/d44e3989cf95d6806dee93df4ed0be35.jpeg)
![af19ac4189a047d2c411f1d79ee2c377.png](https://i-blog.csdnimg.cn/blog_migrate/fa4ebc10e36fc50fd34a78ac2fbf7554.jpeg)
3. 多模块开发时的注意点
recv_msg.py模块
from common import RECV_DATA_LIST# from common import HANDLE_FLAGimport commondef recv_msg(): """模拟接收到数据,然后添加到common模块中的列表中""" print("--->recv_msg") for i in range(5): RECV_DATA_LIST.append(i)def test_recv_data(): """测试接收到的数据""" print("--->test_recv_data") print(RECV_DATA_LIST)def recv_msg_next(): """已经处理完成后,再接收另外的其他数据""" print("--->recv_msg_next") # if HANDLE_FLAG: if common.HANDLE_FLAG: print("------发现之前的数据已经处理完成,这里进行接收其他的数据(模拟过程...)----") else: print("------发现之前的数据未处理完,等待中....------")
handle_msg.py模块
from common import RECV_DATA_LIST# from common import HANDLE_FLAGimport commondef handle_data(): """模拟处理recv_msg模块接收的数据""" print("--->handle_data") for i in RECV_DATA_LIST: print(i) # 既然处理完成了,那么将变量HANDLE_FLAG设置为True,意味着处理完成 # global HANDLE_FLAG # HANDLE_FLAG = True common.HANDLE_FLAG = Truedef test_handle_data(): """测试处理是否完成,变量是否设置为True""" print("--->test_handle_data") # if HANDLE_FLAG: if common.HANDLE_FLAG: print("=====已经处理完成====") else: print("=====未处理完成====")
main.py模块
from recv_msg import *from handle_msg import *def main(): # 1. 接收数据 recv_msg() # 2. 测试是否接收完毕 test_recv_data() # 3. 判断如果处理完成,则接收其它数据 recv_msg_next() # 4. 处理数据 handle_data() # 5. 测试是否处理完毕 test_handle_data() # 6. 判断如果处理完成,则接收其它数据 recv_msg_next()if __name__ == "__main__": main()
![6f5a848c06d0ac45ebe116c5d8d9098d.png](https://i-blog.csdnimg.cn/blog_migrate/f600eb5ca435aa923e58babbbac31dbf.jpeg)
![11da275e0431ef439001959dd02e837e.png](https://i-blog.csdnimg.cn/blog_migrate/0a0d50f9190cf70755db131fad835f7a.jpeg)