Почему python выдает ошибку ImportError: нет модуля с именем linkextractor, даже если модуль Scrapy уже установлен?

Я хочу установить portia. Требуются scrapy и slybot. Я также установил virtualenv (как рекомендуется) и выполнил virtualenv Portia, чтобы создать виртуальную среду Python только для этого проекта. Теперь требует запустить twisted сервер с twistd -n slyd, но потом выдает ошибку:

  File "/home/john/Downloads/portia-master/slybot/slybot/linkextractor/__init__.py", line 6, in <module>
    from .base import BaseLinkExtractor, ALLOWED_SCHEMES   File "/home/john/Downloads/portia-master/slybot/slybot/linkextractor/base.py", line 6, in <module>
    from scrapy.linkextractor import IGNORED_EXTENSIONS ImportError: No module named linkextractor

У меня Ubuntu 12.04, установлено: python 2.7, pip, python-scrapy, python-twisted

Что здесь может быть не так? Я не использовал pip и virtualenv раньше, кажется, что-то не так с рабочим процессом развертывания (например, переменные ОКРУЖАЮЩЕЙ СРЕДЫ, другие конфигурации virtualenv/pip), которые я описал выше?


person static    schedule 04.04.2014    source источник


Ответы (3)


В python3 просто добавьте s в конец linkextractor.

Заменять :

from scrapy.linkextractor import LinkExtractor

to :

from scrapy.linkextractors import LinkExtractor
                         ^

и наслаждайтесь этим.

для получения дополнительной информации прочитайте документацию Scrapy по адресу здесь.

person D.L.MAN    schedule 06.05.2020

В нем отсутствует средняя часть; contrib, из которых linkextractor является подмодулем.

Предполагается, что это:

scrapy.contrib.linkextractor
       ^^^^^^^
person anon582847382    schedule 04.04.2014
comment
Я не редактировал код, просто хочу поиграть с ним. В проектах github нет проблем, связанных с неправильным именем импорта. Попробую сейчас - person static; 04.04.2014
comment
@static Вы уверены, что у вас точно такие же версии зависимостей, как и в коде github? - person anon582847382; 04.04.2014
comment
на самом деле это не из проекта, это из проекта Scrapy, у них там тоже есть from scrapy.linkextractor import IGNORED_EXTENSIONS - person static; 04.04.2014
comment
@static Нет такой вещи, как scrapy.linkextractor. Проверьте документацию для scrapy. - person anon582847382; 04.04.2014
comment
когда я изменил его, как вы предложили, он вернул то же самое: from scrapy.contrib.linkextractor import IGNORED_EXTENSIONS ImportError: No module named linkextractor - person static; 05.04.2014
comment
@static Я получаю информацию из это. - person anon582847382; 05.04.2014
comment
привет, Алекс! Не могли бы вы помочь в этом? stackoverflow.com/questions/31630771/ - person yukclam9; 26.07.2015

Ну, я думаю, что вы должны увидеть эту проблему (https://github.com/scrapinghub/portia/issues/13) в репозитории github scrapinhub.

Я решил некоторые ошибки с импортом, установив библиотеки в свою систему, а не в virtualenv.

В моем случае это были библиотеки jsonschema (pip install jsonschema) и slybot (pip install -e slybot), и после того, как я запустил файл requirements.txt.

С наилучшими пожеланиями!

person marciovicente.filho    schedule 24.04.2014