Python不会显示导入文件的代码更改

时间:2014-09-16 10:37:10

标签: python import

我正在使用linux python shell,每次我对导入的文件进行更改时我都需要重新启动shell(我尝试重新导入文件,但没有反映出更改)

我在名为handlers.py

的文件中有一个定义
def testme():
    print "Hello I am here"

我在python shell中导入文件

>> import handlers as a
>> a.testme()

>>  "Hello I am here"

然后我将print语句更改为"您好我在那里",重新导入处理程序,它没有显示更改?

将Python 2.7与Mint 17.1一起使用

3 个答案:

答案 0 :(得分:6)

您需要明确reload模块,如:

import lib # first import
# later ....
import imp
imp.reload(lib)  # lib being the module which was imported before

请注意,imp模块正在等待折旧,而有利于importlib,而在python 3.4中应该使用:importlib.reload

答案 1 :(得分:1)

每次进行更改时都应该使用重新加载,然后再次导入:

reload( handlers )
import handlers a a

答案 2 :(得分:1)

作为reload内的替代答案,您可以使用 watchdog  。

一个简单的程序,它使用监视程序监视指定为命令行参数的目录并记录生成的事件:

来自网站

  

支持的平台

     
      
  • Linux 2.6(inotify)

  •   
  • Mac OS X(FSEvents,kqueue)

  •   
  • FreeBSD / BSD(kqueue)

  •   
  • Windows(带有I / O完成端口的ReadDirectoryChangesW; ReadDirectoryChangesW工作线程)

  •   
  • 独立于操作系统(轮询磁盘以查找目录快照并定期进行比较;慢速且不推荐)

  •