搜尋

首頁  >  問答  >  主體

scrapy - python __import__很慢的问题

print int(time.time())
name = "scrapy.extensions.memusage"
__import__(name)
print int(time.time())

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

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

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

大家讲道理大家讲道理2894 天前435

全部回覆(3)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:56:40

    我測試了 上面程式碼 和 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().

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:56:40

    前面兩位應該算解答了LZ的問題,但我想補充一點

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

    這兩行是完全等價的!如果你真的想引入scrapy.extensions.memusage,那你應該這樣寫

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

    然而並沒有什麼卵用,我的固態硬碟測試兩個都是2s左右。

    回覆
    0
  • 黄舟

    黄舟2017-04-17 17:56:40

    scrapy.extensions.memusage預設導入了很多依賴進來,當然慢了,請參閱導入這個模組前後的sys.modules個數

    回覆
    0
  • 取消回覆