2016-12-15 151 views
1

我通過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安裝缺少什麼?

回答

1

這並不回答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中的某處。

0

確定您是否有這些包或不:

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 
0

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

2

這還沒有回答這個問題爲什麼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

0

問題是sudo pip install scrapy將scrapy安裝在當前用戶無法訪問的目錄中(如果您不是root的話)。

您需要先刪除scrapy sudo pip uninstall scrapy然後重新安裝-H sudo標誌sudo -H pip install scrapy這將使您的命令行可以檢測scrapy安裝。

相關問題