我几乎是肯定的,这是因为python2.7与python3.5问题,但我还没有找到解决方法。
我跑
$ scrapy startproject test1
并收到此错误:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.5/bin/scrapy", line 9, in <module>
load_entry_point('Scrapy==1.0.1', 'console_scripts', 'scrapy')()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/scrapy/cmdline.py", line 122, in execute
cmds = _get_commands_dict(settings, inproject)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/scrapy/cmdline.py", line 46, in _get_commands_dict
cmds = _get_commands_from_module('scrapy.commands', inproject)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/scrapy/cmdline.py", line 29, in _get_commands_from_module
for cmd in _iter_command_classes(module):
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site- packages/scrapy/cmdline.py", line 21, in _iter_command_classes
for obj in vars(module).itervalues():
AttributeError: 'dict' object has no attribute 'itervalues'
答案 0 :(得分:2)
截至撰写时(2015年8月4日),python 3中根本不支持scrapy。经常提到它,但从未有过完整的翻译。
这与Python 3中不支持Twisted(Scrapy的组成部分)这一事实有关。
答案 1 :(得分:0)
似乎Python 3.5的dict类型不再具有'itervalues'方法。除非他们解决了这个问题,否则您可能会被迫使用以前版本的Python。
编辑:
如果需要,可以更改代码,并使用items()替换itervalues()函数。我认为这不是一个好主意,但如果必须使用3.5
,它可能是一种解决方法