Ошибка импорта Pylint и ModuleNotFound - невозможно импортировать модули, такие как scrapy и sqlalchemy - PullRequest
0 голосов
/ 03 августа 2020

Я пишу паука для сканирования веб-сайта, но когда я запускаю scrapy crawl scraper_bot_name, я получаю ModuleNotFound ошибку: No module named scrapy.spider, где scrapy.spider - первый оператор импорта.

Кроме того, я проверил в VSCode, если бы я мог найти что-то еще, я видел эту проблему со всеми операторами from … import …, ошибка читается - Unable to import ‘scrapy.spider’pylint(import-error)

Я попытался найти решение, и наиболее распространенное исправление, упомянутое, проверяет структура каталогов проекта. В частности, упоминается, чтобы проверить, были ли какие-либо файлы в проекте названы scrapy.py. Это не относится к моему проекту, я также столкнулся с проблемой sqlalchemy, поэтому я не думаю, что это проблема.

Вот структура каталогов -

  • scrape_workspace
    • my_scraper
      • scraper_app
        • init .py
        • items.py
        • модели .py
        • settings.py
        • pipelines.py
        • пауки
          • init .py
          • angellist_spider. py
      • scrapy.cfg
      • Test (виртуальный env - также есть еще один виртуальный env в каталоге, параллельном scrape_workspace)

Вот трассировка -

Traceback (most recent call last):
  File “/Users/arif/newcoderProjects/scrape/ScrapProj/bin/scrapy”, line 10, in <module>
    sys.exit(execute())
  File “/Users/arif/newcoderProjects/scrape/ScrapProj/lib/python3.8/site-packages/scrapy/cmdline.py”, line 142, in execute
    cmd.crawler_process = CrawlerProcess(settings)
  File “/Users/arif/newcoderProjects/scrape/ScrapProj/lib/python3.8/site-packages/scrapy/crawler.py”, line 280, in __init__
    super(CrawlerProcess, self).__init__(settings)
  File “/Users/arif/newcoderProjects/scrape/ScrapProj/lib/python3.8/site-packages/scrapy/crawler.py”, line 152, in __init__
    self.spider_loader = self._get_spider_loader(settings)
  File "/Users/arif/newcoderProjects/scrape/ScrapProj/lib/python3.8/site-packages/scrapy/crawler.py", line 146, in _get_spider_loader
    return loader_cls.from_settings(settings.frozencopy())
  File "/Users/arif/newcoderProjects/scrape/ScrapProj/lib/python3.8/site-packages/scrapy/spiderloader.py", line 68, in from_settings
    return cls(settings)
  File "/Users/arif/newcoderProjects/scrape/ScrapProj/lib/python3.8/site-packages/scrapy/spiderloader.py", line 24, in __init__
    self._load_all_spiders()
  File "/Users/arif/newcoderProjects/scrape/ScrapProj/lib/python3.8/site-packages/scrapy/spiderloader.py", line 51, in _load_all_spiders
    for module in walk_modules(name):
  File "/Users/arif/newcoderProjects/scrape/ScrapProj/lib/python3.8/site-packages/scrapy/utils/misc.py”, line 77, in walk_modules
    submod = import_module(fullpath)
  File “/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py”, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File “<frozen importlib._bootstrap>”, line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/arif/newcoderProjects/scrape_workspace/my_scraper/scraper_app/spiders/angellist_spider.py", line 1, in <module>
    from scrapy.spider import BaseSpider 
ModuleNotFoundError: No module named 'scrapy.spider'


1 Ответ

1 голос
/ 03 августа 2020

Похоже, вы неправильно импортируете BaseSpider.

from scrapy.Spider import BaseSpider
...