为什么python会抛出一个" ImportError:没有名为linkextractor的模块"即使已经安装了Scrapy模块?

时间:2014-04-04 17:00:04

标签: python web-scraping scrapy pip virtualenv

我想安装portia。它需要scrapyslybot。 我还安装了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

这可能是错的?我之前没有使用过pipvirtualenv,我上面描述的部署工作流程(例如环境变量,其他virtualenv/pip配置)是否有问题?

3 个答案:

答案 0 :(得分:1)

在python3 jsut中,将s添加到linkextractor的末尾。

替换:

from scrapy.linkextractor import LinkExtractor

至:

from scrapy.linkextractors import LinkExtractor
                         ^

并享受它。

有关更多信息,请阅读here中的Scrapy文档。

答案 1 :(得分:0)

它错过了中间部分; contrib,其中linkextractor是子模块。

应该是:

scrapy.contrib.linkextractor
       ^^^^^^^

答案 2 :(得分:-1)

好吧,我认为你应该在github scrapinhub repo中看到这个问题(https://github.com/scrapinghub/portia/issues/13)。

我解决了导入在我的系统中安装库而不是virtualenv中的错误。

就我而言,这些库是jsonschema(pip install jsonschema)和slybot(pip install -e slybot),之后我运行了requirements.txt。

祝你好运!