美文网首页
2018-10-21 Python28 重新导入

2018-10-21 Python28 重新导入

作者: 孟媛的笔记 | 来源:发表于2018-10-21 16:32 被阅读0次

    当导入一个模块,系统会去哪些路径找:

    In [5]: import sys
    
    In [6]: sys.path
    Out[6]: 
    ['',  #当前路径
     '/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/mm/.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/mm/.ipython']
    

    就是这些路径,从上到下找。

    如果你要导的模块在其它路径,可以将该路径 添加到此系统list当中:

    In [7]: sys.path.
    sys.path.append   sys.path.extend   sys.path.remove
    sys.path.clear    sys.path.index    sys.path.reverse
    sys.path.copy     sys.path.insert   sys.path.sort
    sys.path.count    sys.path.pop      
    
    In [7]: sys.path.append("/home/mm/桌面/feijidazhan")
    
    In [8]: sys.path
    Out[8]: 
    ['',
     '/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/mm/.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/mm/.ipython',
     '/home/mm/桌面/feijidazhan']
    

     

    重新导入

    假设在你引入一个模块后,你还未退出,这个模块就被修改了,那么你在不退出程序的情况下如何更新这个模块呢?

    In [5]: import testModule
    
    In [6]: test
    testModule     testModule.py  
    
    In [6]: testModule.
    testModule.py    testModule.test  
    
    In [6]: testModule.test()    #在导入testModule之后,test()方法已修改
    ------1-----
    
    
    In [8]: import testModule    #这样重新引入,是不起作用的
    
    In [9]: testModule.test()
    ------1-----
    
    
    In [13]: from imp import reload   #Python2中 reload()方法已内置,可以直接使用
    
    In [14]: reload(testModule)
    Out[14]: <module 'testModule' from '/home/mengmei/桌面/feijidazhan/testModule.py'>
    
    In [15]: testModule.test()    #模块更新成功
    ------1-----
    ------2-----
    

    相关文章

      网友评论

          本文标题:2018-10-21 Python28 重新导入

          本文链接:https://www.haomeiwen.com/subject/htbbzftx.html