为什么python会抛出“ImportError:即使已安装Scrapy模块,也没有名为linkextractor”的模块?

tgabmvqs  于 2022-11-09  发布在  Python
关注(0)|答案(3)|浏览(175)

我想安装portia。它需要scrapyslybot。我还安装了virtualenv(推荐)并执行了virtualenv Portia,以便仅为该项目创建一个python虚拟环境。现在它需要使用twistd -n slyd启动twisted服务器,但随后它抛出了一个错误:

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,我上面描述的部署工作流程(例如ENVIRONMENT变量,其他virtualenv/pip配置)是否有什么问题?

r1zk6ea1

r1zk6ea11#

在python3中,只需将s添加到linkextractor的末尾即可。
替换:

from scrapy.linkextractor import LinkExtractor

与:

from scrapy.linkextractors import LinkExtractor
                         ^

并享受它。
有关详细信息,请阅读here中的Scrapy文档。

w8rqjzmb

w8rqjzmb2#

它遗漏了中间部分; contrib,其中linkextractor是子模块。
它应该是:

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

vh0rcniy3#

好吧,我认为你应该在github scrapinhub repo中看到这个问题(https://github.com/scrapinghub/portia/issues/13)。
我解决了一些导入错误,将库安装在我的系统中而不是virtualenv中。
在我的例子中,这些库是jsonschema(pip install jsonschema)和slybot(pip install -e slybot),在我运行requirements.txt之后。
顺祝商祺!

相关问题