検索

ホームページ  >  に質問  >  本文

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中加入本机名 解决!

大家讲道理大家讲道理2893日前430

全員に返信(3)返信します

  • 伊谢尔伦

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

    上記のコードをテストしましたが、import scrapy.extensions.memusage どちらも約 4 秒かかります

    scrapy.extensions.memusage に依存関係が多すぎるため、速度が遅くなっているはずです

    __import__ とは何の関係もないはずです

    そして公式はこのインポートモジュールの使用を推奨していません...

    単にモジュール (パッケージ内の可能性がある) を名前でインポートしたい場合は、importlib.import_module().

    を使用します。

    返事
    0
  • 巴扎黑

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

    最初の 2 人が LZ の質問に答えているはずですが、何か追加したいことがあります

    リーリー

    これらの 2 行は 完全に 同等です。本当に scrapy.extensions.memusage を紹介したい場合は、次のように

    を書く必要があります リーリー

    しかし、ソリッド ステート ドライブのテストは両方とも約 2 秒でした。

    返事
    0
  • 黄舟

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

    scrapy.extensions.memusage はデフォルトで多くの依存関係をインポートしますが、これは当然遅くなります。このモジュールをインポートする前後の sys.module の数を確認してください。

    返事
    0
  • キャンセル返事