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。

+0

重点是它已安装。它只是缺少命令行工具的脚本。 scrapy完全可导入等。 – Dodgie

这还没有回答这个问题为什么scrapy命令行工具无法使用,但如果scrapy是导入的,你评论,你可以使用:

$ python -m scrapy.cmdline version -v 
$ python -m scrapy.cmdline shell <url> 

scrapy是它的别名其实,如在Scrapy's setup.py entry_points部分中所指定的,并应该由pip install进行设置。

+0

OP在这里。我刚刚用点子安装了一个网页抓取工具shub。同样的问题。必须写另一个脚本。 – Dodgie

问题是sudo pip install scrapy将scrapy安装在当前用户无法访问的目录中(如果您不是root的话)。

您需要先删除scrapy sudo pip uninstall scrapy然后重新安装-H sudo标志sudo -H pip install scrapy这将使您的命令行可以检测scrapy安装。