从品牌网站建设到网络营销策划,从策略到执行的一站式服务
importlib 模块的作用
模块,是一个一个单独的py文件 包,里面包含多个模块(py文件)
动态导入模块,这样就不用写那么多的import代码, 典型的例子: 自动同步服务,每个网站都有一个py文件。主进程里收到同步任务,根据名称来动态导入对应的py文件,这样就不用写那么多的import代码。(有点类似java的工厂方法)
但是,importlib并不能解决我在线修改py源码,再不重启进程的情况下,使修改生效。 这种情况,可以使用reload()
reload方法
为防止两个模块互相导入的问题,Python默认所有的模块都只导入一次,如果需要重新导入模块, Python2.7可以直接用reload(),Python3可以用下面几种方法:
方法一:基本方法 from imp import reload reload(module)
方法二:按照套路,可以这样 import imp imp.reload(module)
方法三:看看imp.py,有发现,所以还可以这样 import importlib importlib.reload(module)
方法四:根据天理,当然也可以这样 from importlib import reload reload(module)
在多进程的 程序中,一个进程的reload是无法影响另一个进程的
例子:
# 在主进程中启动多进程 def begin(): """ 启动多进程 """ plist = [] for i in xrange(Num_process): p = Process(target=pre_run) p.start() plist.append(p) # 此进程监听redis消息,收到消息,即执行reload方法 p = Process(target=reload_spider) p.start() plist.append(p) for p in plist: p.join()
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图