2015-08-08 3 views
6

Я использую Mac OS, он имеет python 2.7 и python 3.4. Я использую команду pip install для установки scrapy в python 2.7. Купить Я также использую команду pip3 install для установки scrapy в python3.4 тоже ...Как создать проект scrapy от python3

Я прочитал официальные документы на scrapy.org, я знаю, что scrapy просто поддерживает python 2.7. Когда я использую команду scrapy startproject tutorial, она вернет урну ниже.

Как я могу использовать команду scrapy startproject tutorial с python 2.7?

File "/Library/Frameworks/Python.framework/Versions/3.4/bin/scrapy", line 9, in <module> 
    load_entry_point('Scrapy==1.1.0dev1', 'console_scripts', 'scrapy')() 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/Scrapy-1.1.0dev1-py3.4.egg/scrapy/cmdline.py", line 122, in execute 
    cmds = _get_commands_dict(settings, inproject) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/Scrapy-1.1.0dev1-py3.4.egg/scrapy/cmdline.py", line 46, in _get_commands_dict 
    cmds = _get_commands_from_module('scrapy.commands', inproject) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/Scrapy-1.1.0dev1-py3.4.egg/scrapy/cmdline.py", line 29, in _get_commands_from_module 
    for cmd in _iter_command_classes(module): 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/Scrapy-1.1.0dev1-py3.4.egg/scrapy/cmdline.py", line 21, in _iter_command_classes 
    for obj in vars(module).itervalues(): 
AttributeError: 'dict' object has no attribute 'itervalues' 

ответ

7

Установка scrapy with pip предоставит исполняемый файл где-нибудь в вашей PATH. Поскольку вы установили его два раза, версия python2, вероятно, была перезаписана. Чтобы найти этот файл, используйте команду which scrapy. Чтобы просмотреть содержимое файла, используйте cat $(which scrapy). Вероятно, он содержит строку, читающую что-то вроде этого: #!/usr/bin/python3.4, заставляя его использовать несовместимую версию python.

Чтобы исправить это, удалите версию scrapy для python3.

pip3 uninstall scrapy 

Затем очистить кэш команд в Баш с помощью hash -r или начать новый сеанс терминала.

Если команда scrapy по-прежнему не работает, возможно, вам придется переустановить ее версию python 2.

pip install scrapy --force-reinstall 
+0

привет спасибо за ваш ответ. Я использую pip3 uninstall scrapy, затем я использую pip uninstall scrapy. Затем я использую pip install scrapy. Но теперь, когда я использую команду «scrapy startproject tutorial», она вернет ошибку ниже: -bash: /Library/Frameworks/Python.framework/Versions/3.4/bin/scrapy: Нет такой файл или каталог – PaulGibson

+1

Когда я перезапускаю терминал, все в порядке! спасибо! – PaulGibson

+0

Старый путь к scrapy все еще был кеширован bash. Запуск нового сеанса оболочки или использование 'hash -r' будет обновлять ваш исполняемый кеш команды. –

6

Решение Существует, разработчик уже обеспечивают Scrapy для Python3.x, так что вы можете попробовать

$ pip install scrapy==1.1.0rc1 

И статья here

0

На самом деле вы можете использовать последние Scrapy для работы с python 3. Я составил article об установке Scrapy 3.1.1rc3 для Python3 в Windows и использовать его в Pycharm. Я использую Conda для управления пакетами и виртуального окружения. Конда работает лучше, чем pip и easy_install для этой работы. Он должен работать на Mac с небольшими изменениями.

Смежные вопросы