我想安装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
配置)是否有问题?
答案 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。
祝你好运!