scrapy - python __import__很慢的问题

 AmenTo_AT 发布于 2022-10-31 06:51
print int(time.time())
name = "scrapy.extensions.memusage"
__import__(name)
print int(time.time())

执行本段代码耗时30秒,请教可能是什么原因呢?

感谢大神的回答,原因确实是依赖导致的。

我的具体原因是:
hostname, aliases, ipaddrs = gethostbyaddr(name)
这个方法导致的, 跟获取服务器名有关,
解决办法是zai /etc/hosts中加入本机名 解决!

3 个回答
  • scrapy.extensions.memusage默认导入了好多依赖进来,当然慢了,参见导入这个模块前后的sys.modules个数

    2022-10-31 22:24 回答
  • 前面两位应该算解答了LZ的问题,但我想要补充一点

    __import__("scrapy.extensions.memusage")
    __import__("scrapy")

    这两行是完全等价的!如果你真的想引入scrapy.extensions.memusage,那你应该这样写

    __import__("scrapy.extensions.memusage", fromlist=[""])

    然而并没有什么卵用,我的固态硬盘测试两个都是2s左右。

    2022-10-31 22:25 回答
  • 我测试了 上面代码 和 import scrapy.extensions.memusage都大概在 4s左右

    应该是scrapy.extensions.memusage的依赖过多导致速度的慢

    和__import__应该无关

    而且官方也不推荐用这个import module吧...

    If you simply want to import a module (potentially within a package) by name, use importlib.import_module().

    2022-10-31 22:25 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有