2015-08-08 26 views
6

Mac OS kullanıyorum, python 2.7 ve python 3.4 var. scrapy python 2.7'ye yüklemek için pip install komutunu kullanıyorum. python3 tarafından scrapy projesinin oluşturulması

Ben scrapy.org üzerinde resmi belgeleri okumak ... Ben de çok python3.4 içinde scrapy yüklemek için pip3 install komutunu kullanın al, scrapy sadece python 2.7 desteklediğini biliyoruz. scrapy startproject tutorial komutunu kullandığımda, aşağıda errowu döndürecektir.

Python 2.7 ile scrapy startproject tutorial komutunu nasıl kullanabilirim?

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' 

cevap

7

Scrapy'nin pip'le kurulması, PATH'nize bir yerde yürütülebilir bir dosya koyar. İki kere kurduğunuzdan, muhtemelen python2 versiyonu üzerine yazılmıştır. Bu dosyayı bulmak için which scrapy komutunu kullanın. Dosya içeriğini görmek için cat $(which scrapy) kullanın. Muhtemelen bir satır içerir: #!/usr/bin/python3.4, python'un uyumsuz bir sürümünü kullanmasına neden olur.

Bunu düzeltmek için, scrub'ın python3 sürümünü kaldırın.

pip3 uninstall scrapy 

Sonra hash -r kullanarak ya da yeni terminal oturumu başlatarak bash komut önbelleği temizleyin.

scrapy komutu hala çalışmıyorsa, python 2 sürümünü de yeniden yüklemeniz gerekebilir. Orada

pip install scrapy --force-reinstall 
+0

Merhaba Cevabınız için teşekkürler. Ben pip3 kaldırma scrapy kullanıyorum, sonra pip kaldırma scrapy kullanın. Sonra pip install scrapy kullanıyorum.Ama şimdi 'scrapy startproject tutorial' komutunu kullandığımda, aşağıdaki hatayı döndürecektir: -bash: /Library/Frameworks/Python.framework/Versions/3.4/bin/scrapy: No Bu dosya veya dizin – PaulGibson

+1

Terminali yeniden başlattığımda, tamamdır! Teşekkürler! – PaulGibson

+0

Eski tedavi yolu hala bash tarafından önbelleğe alındı. Yeni bir kabuk oturumu başlatmak veya 'hash -r' komutunu kullanarak, yürütülebilir komut önbelleğini güncelleyeceksiniz. –

6

çözüm dizinde yoksa,

$ pip install scrapy==1.1.0rc1 

deneyebilirsiniz geliştirici zaten Python3.x için scrapy sağlamak olmuştu Ve makale Aslında son kullanabilirsiniz here

0

olduğunu Scrub python 3 ile çalışmak için. Python3 için Scrapy 3.1.1rc3'ü Windows'ta kurmak ve Pycharm'da kullanmak için article'u oluşturdum. Paket yönetimi ve sanal ortam için Conda kullanıyorum. Conda bu iş için pip ve easy_install'dan daha iyi çalışıyor. Mac’te küçük değişiklikler yapmalı.