Scrapy命令行工具未安装pip
我通过sudo pip install scrapy
安装了scrapy。它将python模块安装到site-packages中,我可以在python环境中导入scrapy。但是,试图使用命令行工具将引发一个错误:Scrapy命令行工具未安装pip
scrapy startproject demo
有错误The program 'scrapy' is not currently installed.
,并告诉我安装Python-scrapy。
whereis scrapy
没有输出。对试图追踪安装路径感到厌倦,所以我跑find -name "*crap*"
,这也没有什么用处。似乎命令行工具不是由pip安装的。这个pip安装缺少什么?
这并不回答pip安装有什么问题,但对于任何使用scrapy包但没有功能的命令行命令的人,您可以创建一个脚本来为您运行scrapy命令行工具:
#! /usr/bin/python2.7
# path to python 2.7 (python 3 doesn't work well with scrapy atm)
import sys
import scrapy.cmdline
sys.exit(scrapy.cmdline.execute())
保存在一个文件(带有执行权限)中,称为scrapy
您的$ PATH中的某处。
确定您是否有这些包或不:
w3lib, cssselect, parsel, attrs, pyasn1-modules, service-identity, PyDispatcher, queuelib, zope.interface, constantly, incremental, Twisted, scrapy
我用:
$ pip install scrapy
在Ubuntu 16.04和所有这些包是通过它安装。在此之后我想:
$ scrapy startproject demo
,并与该输出为我工作:
New Scrapy project 'demo', using template directory '/home/*machine_name*/anaconda2/lib/python2.7/site-packages/scrapy/templates/project', created in:
/home/*machine_name*/demo
You can start your first spider with:
cd demo
scrapy genspider example example.com
Scrapy是不是你机器上安装。如果要安装第一次运行这些命令是用来你应该已经运行升级这些命令之前你系统
sudo apt-get install build-essential libssl-dev libffi-dev python-dev libxml2-dev
上安装python-dev的命令
sudo apt-get update
和
sudo apt-get upgrade
这些运行后
pip install scrapy
当它完成运行以下命令,检查是否安装scrapy或不
scrapy version
如果版本提示您已成功安装scrapy。
这还没有回答这个问题为什么是scrapy
命令行工具无法使用,但如果scrapy是导入的,你评论,你可以使用:
$ python -m scrapy.cmdline version -v
$ python -m scrapy.cmdline shell <url>
scrapy
是它的别名其实,如在Scrapy's setup.py
entry_points部分中所指定的,并应该由pip install
进行设置。
OP在这里。我刚刚用点子安装了一个网页抓取工具shub。同样的问题。必须写另一个脚本。 – Dodgie
问题是sudo pip install scrapy
将scrapy安装在当前用户无法访问的目录中(如果您不是root的话)。
您需要先删除scrapy sudo pip uninstall scrapy
然后重新安装-H
sudo标志sudo -H pip install scrapy
这将使您的命令行可以检测scrapy安装。
重点是它已安装。它只是缺少命令行工具的脚本。 scrapy完全可导入等。 – Dodgie