回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个废弃的项目,它不会从命令行使用<code>scrapy crawl <spider-name></code>执行。在</p>
<p>我刚刚在Ubuntu16.04上迁移到了一个新的开发环境,所以我想再次检查一下这个问题是否与我的设置无关。为此,我使用<code>python 2.7.12</code>创建了一个干净的虚拟环境<code>virtualenvwrapper</code>,并遵循了Scrapy docs中的<a href="https://doc.scrapy.org/en/1.1/intro/tutorial.html#how-to-run-our-spider" rel="nofollow noreferrer">tutorial instructions</a>。(v1.1以模仿我的另一个项目)。在</p>
<p>尽管有了新的环境,我还是看到了一些奇怪的行为,但它不会:</p>
<ul>
<li>列出蜘蛛<code>scrapy list</code></li>
<li>列出设置<code>scrapy settings</code></li>
<li>开始爬网<code>scrapy crawl quotes</code></li>
</ul>
<p><code>scrapy crawl quotes</code>引发以下错误:</p>
<pre><code>2017-01-06 14:20:50 [scrapy] INFO: Scrapy 1.1.1 started (bot: scrapybot)
2017-01-06 14:20:50 [scrapy] INFO: Overridden settings: {}
Traceback (most recent call last):
File "/home/alan/QueryClick/.virtualenvs/test/bin/scrapy", line 11, in <module>
sys.exit(execute())
File "/home/alan/QueryClick/.virtualenvs/test/local/lib/python2.7/site-packages/scrapy/cmdline.py", line 142, in execute
_run_print_help(parser, _run_command, cmd, args, opts)
File "/home/alan/QueryClick/.virtualenvs/test/local/lib/python2.7/site-packages/scrapy/cmdline.py", line 88, in _run_print_help
func(*a, **kw)
File "/home/alan/QueryClick/.virtualenvs/test/local/lib/python2.7/site-packages/scrapy/cmdline.py", line 149, in _run_command
cmd.run(args, opts)
File "/home/alan/QueryClick/.virtualenvs/test/local/lib/python2.7/site-packages/scrapy/commands/crawl.py", line 57, in run
self.crawler_process.crawl(spname, **opts.spargs)
File "/home/alan/QueryClick/.virtualenvs/test/local/lib/python2.7/site-packages/scrapy/crawler.py", line 162, in crawl
crawler = self.create_crawler(crawler_or_spidercls)
File "/home/alan/QueryClick/.virtualenvs/test/local/lib/python2.7/site-packages/scrapy/crawler.py", line 190, in create_crawler
return self._create_crawler(crawler_or_spidercls)
File "/home/alan/QueryClick/.virtualenvs/test/local/lib/python2.7/site-packages/scrapy/crawler.py", line 194, in _create_crawler
spidercls = self.spider_loader.load(spidercls)
File "/home/alan/QueryClick/.virtualenvs/test/local/lib/python2.7/site-packages/scrapy/spiderloader.py", line 43, in load
raise KeyError("Spider not found: {}".format(spider_name))
KeyError: 'Spider not found: quotes'
</code></pre>
<p>我的目录结构是:</p>
^{pr2}$
<p>我还仔细检查了我的所有系统需求,如Scrapy文档中所述。这个问题在我的团队中被复制,在Ubuntu14.04上遵循与virtualenv相同的步骤和我的相同设置。在</p>
<p>如果有人能对此有所启示,我将永远感激。在</p>
<hr/>
<p><strong>编辑</strong>:添加<code>settings.py</code></p>
<p><code>settings.py</code>中唯一活跃的是:</p>
<pre><code>BOT_NAME = 'tutorial'
SPIDER_MODULES = ['tutorial.spiders']
NEWSPIDER_MODULE = 'tutorial.spiders'
ROBOTSTXT_OBEY = True
</code></pre>
<hr/>
<p><strong>编辑:</strong>共享<code>scrapy.cfg</code></p>
<pre><code># Automatically created by: scrapy startproject
#
# For more information about the [deploy] section see:
# https://scrapyd.readthedocs.org/en/latest/deploy.html
[settings]
default = tutorial.settings
[deploy]
#url = http://localhost:6800/
project = tutorial
</code></pre>