2017-09-28 1 views
0

Je tente d'exécuter plusieurs robots d'exploration comme indiqué dans le docs. Le script s'exécute en appelant le scrapy crawl crawler.Exécuter Scrapy à partir du script: Erreur module introuvable - nomprojet.items n'est pas un package

maintenant en appelant via python crawler.py je reçois l'erreur suivante:

from crawler.items import LinkItem

ModuleNotFoundError: No module named 'crawler.items'; 'crawler' is not a package

import scrapy 
from scrapy.spiders import CrawlSpider, Rule 
from scrapy.linkextractors import LinkExtractor 
from scrapy.crawler import CrawlerProcess 

from crawler.items import LinkItem 
from crawler.settings import DB_CREDS 

Est-ce que quelqu'un sait comment gérer cela?

Mon projet s'appelle un robot. Cela pourraît-il poser problème?

Hiérarchie:

Crawler 
|-crawler 
| |-__pycache__ 
| | |-... 
| |-spiders 
| | |-__pycache__ 
| | |-__init__.py 
| | |-crawler.py 
| |-__init__.py 
| |-items.py 
| |-middlewares.py 
| |-pipelines.py 
| |-settings.py 
|-scrapy.cfg 
+0

dans votre dossier spiders, tapez pwd, et tapez ls où vous placez des objets et faites-moi savoir le résultat – parik

+0

@parik Je suis désolé mais je ne comprends pas. Que voulez-vous que je fasse? – phenixclaw

+0

je veux savoir la hiérarchie de votre projet, vous devriez avoir votre fichier items.py dans le dossier de crawler – parik

Répondre

0

Je pense que cela est une sorte de problème de chemin Python. Vous exécutez votre script par l'interpréteur python au lieu de Scrapy, donc vous devez vous assurer que Python sait où est votre paquet. Si vous exécutez la commande Scrapy, alors scrapy en prendra soin par le scrapy.cfg. La solution la plus simple consiste à ajouter votre chemin de projet à PYTHONPATH. Par exemple export PYTHONPATH=YOUR_PROJECT_PATH:$PYTHONPATH. Vous devrez peut-être ajouter ceci à votre fichier .bashrc.

Il existe également d'autres solutions, par exemple suivre la distribution du package pour installer votre projet dans la bibliothèque python de packages de site.

Merci.