Maison > Questions et réponses > le corps du texte
在交互环境
import scrapy # 成功
但是在终端 scrapy 新建项目就出错了
Traceback (most recent call last):
File "/usr/local/bin/scrapy", line 7, in <module>
from scrapy.cmdline import execute
File "/usr/local/lib/python2.7/dist-packages/scrapy/cmdline.py", line 9, in <module>
from scrapy.crawler import CrawlerProcess
File "/usr/local/lib/python2.7/dist-packages/scrapy/crawler.py", line 15, in <module>
from scrapy.signalmanager import SignalManager
File "/usr/local/lib/python2.7/dist-packages/scrapy/signalmanager.py", line 2, in <module>
from pydispatch import dispatcher
ImportError: No module named pydispatch
可是, pydispatch包已经有了呀!
$ pip install --upgrade pydispatch
Requirement already up-to-date: pydispatch in /usr/local/lib/python2.7/dist-packages
Requirement already up-to-date: colorama>=0.2.7 in /usr/local/lib/python2.7/dist-packages (from pydispatch)
Requirement already up-to-date: six>=1.5.2 in /usr/local/lib/python2.7/dist-packages (from pydispatch)
阿神2017-04-17 18:02:50
Y a-t-il un problème avec la configuration de l'environnement ?
Vérifiez s'il y a un package d'installation dans votre code problématique :
>>> import pip
>>> installed_packages = pip.get_installed_distributions()
>>> installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
... for i in installed_packages])
>>> print(installed_packages_list)
Méthode tirée de :
http://stackoverflow.com/questions/739993/how-can-i-get-a-list-of-locally-installed-python-modules
PHPz2017-04-17 18:02:50
J'ai vérifié les notes de version de Scrapy et j'ai trouvé
La bibliothèque scrapy.xlib.pydispatch précédemment fournie a été obsolète et remplacée par pydispatcher.
C'est-à-dire que la dernière version de scrapy n'utilise pas le module pydispatch, mais utilise le module pydispatcher
Alors peut-être que vous n'utilisez pas la dernière version de scrapy ?
Comme solution, je vous suggère d'utiliser virtualenv pour en créer un Environnement python indépendant, réinstallez le dernier scrapy dans cet environnement.
ou réinstallez scrapy directement dans le système