scrapy - python __import__很慢的问题
大家讲道理
大家讲道理 2017-04-17 17:54:40
0
3
427
print int(time.time())
name = "scrapy.extensions.memusage"
__import__(name)
print int(time.time())

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

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

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(3)
伊谢尔伦

J'ai testé le code ci-dessus et import scrapy.extensions.memusage les deux prennent environ 4 secondes

Il se pourrait que scrapy.extensions.memusage ait trop de dépendances, ce qui entraîne une vitesse lente

Cela ne devrait rien avoir à voir avec __import__

Et le responsable ne recommande pas d'utiliser ce module d'importation...

Si vous souhaitez simplement importer un module (potentiellement au sein d'un package) par son nom, utilisez importlib.import_module().

巴扎黑

Les deux premières personnes auraient dû répondre à la question de LZ, mais j'aimerais ajouter quelque chose

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

Ces deux lignes sont complètement équivalentes ! Si vous voulez vraiment présenter scrapy.extensions.memusage, alors vous devriez écrire

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

Cependant, cela ne sert à rien. Mes deux tests de disque SSD duraient environ 2 secondes.

黄舟

scrapy.extensions.memusage importe beaucoup de dépendances par défaut, ce qui est bien sûr lent. Voir le nombre de sys.modules avant et après l'importation de ce module

.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal