2015-02-23 123 views
5

我使用Ubuntu的14.04 64,我跟着Scrapy文档安装的软件包使用PIP的Python和Scrapy:问题与Scrapy版本

pip install scrapy 

然后我跟着示例项目的初始化,并尝试执行例如蜘蛛

scrapy crawl example 

,我得到这个呃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' 

pip freeze | grep 'Scrapy'检查,检查的安装版本Scrapy和我:

2015-02-23 10:23:42+0100 [scrapy] INFO: Scrapy 0.14.4 started (bot: example) 

    Scrapy==0.24.4 
    

    但你可以在追踪错误见

  1. 我试图卸载并重新安装
  2. 我想也更新点子,卸载scrapy并重新安装
  3. 我试着用安装它易于得到

  • 为什么如果我安装最新版本(0.24.4 )它似乎正在执行0.14.4?
  • 此问题与Scrapy,Pip或两者有关?

编辑:

这是文件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) 

如果我执行scrapy version作为@aberna sugested我:

Scrapy 0.14.4 
+0

邮政import语句,让你一个问题。这是'example_spider.py',第3行(请参见错误) – 2015-02-23 09:45:37

+0

如果执行命令“scrapy版本”,会发生什么情况?什么版本的scrapy被使用? – aberna 2015-02-23 13:01:38

+0

@aberna它说'Scrapy 0.14.4'...我怎么升级? 'pip install --upgrade'被忽略 – AlvaroAV 2015-02-24 07:40:56

回答

5

我也有类似当时的问题和那是因为Ubuntu包被搞乱了pip包。

当我使用Scrapy PIP并尝试运行安装它,scrapy说,包是缺少一些依赖关系,然后我用apt-get安装Scrapy并没有在那里我搞砸了与包的版本。

我建议你从删除这些软件包Ubuntu的皮普,然后使用PIP只重新安装:

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

后这些行动完成后,您可以再次使用PIP并安装它,然后,如果你做scrapy version你应该得到最新版本的响应,在你的情况下它应该是0.24.4

编辑

您可以在Scrapy文档阅读:

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

要在Ubuntu安装Scrapy他们说:

  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

谢谢!我安装了scrapy软件包,用apt和pip卸载后重新安装,效果非常好! – AlvaroAV 2015-02-27 07:46:30

+0

绝对的救星!由于我的Ubuntu版本问题,我得到了这样的疯狂错误,这个回复为我节省了大量的时间。干杯。 – AmirHd 2015-07-10 06:14:32