2015-02-23 6 views
5

sto usando Ubuntu 14.04 x64, ho seguito il Scrapy docs per installare il pacchetto utilizzando pip:Python & Scrapy: Problema con la versione Scrapy

pip install scrapy 

Poi ho seguito la inizializzazione del progetto di esempio e cercare di eseguire il esempio ragno:

scrapy crawl example 

e ottengo questo er ror:

2015-02-23 10:23:42+0100 [scrapy] INFO: Scrapy 0.14.4 started (bot: example) 
2015-02-23 10:23:42+0100 [scrapy] DEBUG: Enabled extensions: LogStats, TelnetConsole, CloseSpider, WebService, CoreStats, MemoryUsage, SpiderState 
Traceback (most recent call last): 
    File "/usr/local/bin/scrapy", line 11, in <module> 
    sys.exit(execute()) 
    File "/usr/lib/python2.7/dist-packages/scrapy/cmdline.py", line 132, in execute 
    _run_print_help(parser, _run_command, cmd, args, opts) 
    File "/usr/lib/python2.7/dist-packages/scrapy/cmdline.py", line 97, in _run_print_help 
    func(*a, **kw) 
    File "/usr/lib/python2.7/dist-packages/scrapy/cmdline.py", line 139, in _run_command 
    cmd.run(args, opts) 
    File "/usr/lib/python2.7/dist-packages/scrapy/commands/crawl.py", line 43, in run 
    spider = self.crawler.spiders.create(spname, **opts.spargs) 
    File "/usr/lib/python2.7/dist-packages/scrapy/command.py", line 34, in crawler 
    self._crawler.configure() 
    File "/usr/lib/python2.7/dist-packages/scrapy/crawler.py", line 36, in configure 
    self.spiders = spman_cls.from_crawler(self) 
    File "/usr/lib/python2.7/dist-packages/scrapy/spidermanager.py", line 37, in from_crawler 
    return cls.from_settings(crawler.settings) 
    File "/usr/lib/python2.7/dist-packages/scrapy/spidermanager.py", line 33, in from_settings 
    return cls(settings.getlist('SPIDER_MODULES')) 
    File "/usr/lib/python2.7/dist-packages/scrapy/spidermanager.py", line 23, in __init__ 
    for module in walk_modules(name): 
    File "/usr/lib/python2.7/dist-packages/scrapy/utils/misc.py", line 65, in walk_modules 
    submod = __import__(fullpath, {}, {}, ['']) 
    File "/home/alvaro/vagrantenvs/example/example/spiders/example_spider.py", line 3, in <module> 
    class ExampleSpider(scrapy.Spider): 
AttributeError: 'module' object has no attribute 'Spider' 

Ho controllato con pip freeze | grep 'Scrapy' per verificare la versione installata di Scrapy ed ho ottenuto:

Scrapy==0.24.4 

ma come si può vedere l'errore traceback:

2015-02-23 10:23:42+0100 [scrapy] INFO: Scrapy 0.14.4 started (bot: example) 
  1. Ho provato a disinstallare e reinstallare
  2. ho cercato anche di aggiornare pip, disinstallare e reinstallare Scrapy
  3. ho provato ad installarlo utilizzando apt-get

  • Perché se ho installato l'ultima versione (0.24.4) sembra che stia eseguendo 0.14.4?
  • Questo problema è correlato a Scrapy, Pip o entrambi?

Edit:

Qui è il file di example_spider.py:

import scrapy 

class ExampleSpider(scrapy.Spider): 
    name = "example" 
    allowed_domains = ["dmoz.org"] 
    start_urls = [ 
     "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/", 
     "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/" 
    ] 

    def parse(self, response): 
     filename = response.url.split("/")[-2] 
     with open(filename, 'wb') as f: 
      f.write(response.body) 

Se eseguo scrapy version come @aberna sugested ho ottenuto:

Scrapy 0.14.4 
+0

Messaggio l'istruzione import che ti dà un problema. Questo è 'example_spider.py', riga 3 (vedi errore) –

+0

cosa succede se si esegue il comando" versione scrapy "? Quale versione di scrapy viene utilizzata? – aberna

+0

@aberna dice 'Scrapy 0.14.4' ... Come posso aggiornare ?? 'pip install --upgrade' viene ignorato – AlvaroAV

risposta

5

ho avuto un simile problema allora ed è stato perché il pacchetto di Ubuntu ha funzionato con lo pacco pacchetto.

Quando ho installato Scrapy utilizzando pip e provare a eseguirlo, Scrapy dice che il pacchetto era mancano alcune dipendenze e poi ho installato Scrapy utilizzando apt-get e non v'è dove ho fatto un casino con la versione del pacchetto.

vi consiglio di rimuovere entrambi i pacchetti da Ubuntu e Pip e quindi reinstallare utilizzando solo pip:

apt-get remove --purge python-scrapy 
pip uninstall scrapy 

Dopo quelle azioni finito è possibile reinstallarlo utilizzando pip e poi se si fare scrapy version si dovrebbe ottenere come risposta la versione più recente, nel tuo caso dovrebbe essere 0.24.4.

EDIT

Si può leggere questo Scrapy Documentazione:

python-scrapy is a different package provided by official debian repositories, it’s very outdated and it isn’t supported by Scrapy team.

Per installare Scrapy in Ubuntu dicono:

  1. Import the GPG key used to sign Scrapy packages into APT keyring:

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 627220E7

  2. Create /etc/apt/sources.list.d/scrapy.list file using the following command:

    echo 'deb http://archive.scrapy.org/ubuntu scrapy main' | sudo tee /etc/apt/sources.list.d/scrapy.list

3.Update package lists and install the scrapy-0.24 package:

sudo apt-get update && sudo apt-get install scrapy-0.24

Check Here: Scrapy on Ubuntu

+1

Grazie! Ho installato un pacchetto scrapy, dopo averlo disinstallato con apt e pip e reinstallato con pip funziona perfettamente! – AlvaroAV

+0

Un assoluto salvatore! Stavo ottenendo errori pazzeschi a causa dei problemi di versione sulla mia Ubuntu e questa risposta mi ha permesso di risparmiare tempo. Saluti. – AmirHd