Как решить «ModuleNotFoundError» Нет модуля с именем «XXXX» - PullRequest
0 голосов
/ 18 апреля 2019

Я работаю со скрапом в среде Spyder / Anaconda.У меня есть проект, который я пытаюсь использовать items.py, и независимо от того, что я делаю, я не могу его распознать, продолжаю получать "ModuleNotFoundError"

Вот что у меня есть в моем dsg_spider.py ифайл items.py.Пока я не пытаюсь использовать файл items.py внутри паука, он работает и работает как положено. Я просто пытаюсь получить данные в структурированном формате и хочу настроить их прямо перед тем, как продолжить.

import scrapy
import sys
import os
from DSG2.items import Dsg2Item



        doc = Dsg2Item()
        doc['sku'] = response.xpath("//span[@itemprop='sku']/text()").extract()
        doc['price'] = response.xpath("//span[@itemprop='price']/text()").extract()
        doc['description'] = response.xpath("//meta[@itemprop='name']/@content").extract()

Файл "F: /Anaconda/DSG2/DSG2/spiders/dsg_spider.py", строка 4, из импорта DSG2.items Dsg2Item

ModuleNotFoundError: Нет модуля с именем 'DSG2'

Это код в items.py

import scrapy

class Dsg2Item(scrapy.Item):
     description = scrapy.Field()
     sku = scrapy.Field()
     price = scrapy.Field()
#brand = brand
#description = name

Структура папок, в которой у меня есть все мои файлы

Anaconda (folder)
   DSG2 (folder)
   |---DSG2 (folder)
       |---_pycache_ (folder)
       |---spiders (folder)
           |---_pycache_ (folder)
           |---_init_.py (file)
           |---dsg_spider.py (file)
       |---_init_.py (file)
       |---items.py (file)
       |---middlewares.py (file)
       |---pipelines.py (file)
       |---settings.py (file)
   |---scrapy.cfg (file)

Ответы [ 2 ]

1 голос
/ 18 апреля 2019

Решение, как мне кажется, заключалось в том, чтобы в Spyder перейти к Проектам --- Новый проект --- Выберите Существующий каталог, затем перейдите в папку проекта и выберите Создать, который создал проект, и когда я его запускаю, онбольше не жалуется ..

0 голосов
/ 18 апреля 2019

Я думаю, что вы забыли добавить свой пакет в pythonpath.

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
...