Esta es una publicación bastante larga, pero después de hacer una extensa investigación no pude encontrar una solución. Tengo un proyecto mixto Django 1.4.1/Scrapy 0.14.4 en OSX 10.8 y controlo Scrapy con el comando manage.py
del proyecto Django como se describe en here. Por ejemplo, llamando alNo se puede importar el módulo de configuración de Scrapy o su scrapy.cfg
python manage.py scrapy crawl example_spider
funciona sin problemas. Ahora estoy en el punto donde quiero configurar el servicio web scrapyd
para desplegar mis arañas. Sin embargo, cuando ejecuto
python manage.py scrapy server
en cuando me siento esta excepción:
scrapy.exceptions.NotConfigured: Unable to find scrapy.cfg file to infer project data dir
Así que, al parecer Scrapy no puede encontrar el archivo scrapy.cfg
porque no ejecutarlo desde dentro del proyecto Scrapy. El otro Scrapy comandos de trabajo, sin embargo, debido a que en mi proyecto de Django settings.py
hice lo siguiente:
sys.path.append('/absolute/path/to/my/Scrapy/project')
os.environ['SCRAPY_SETTINGS_MODULE'] = 'my_scrapy_project_name.settings'
Pregunta 1: ¿Por qué no Scrapy detectar el archivo scrapy.cfg
en mi configuración? ¿Cómo puedo resolver esto?
Dado que el material mencionado anteriormente no funciona, he tratado de conseguir el scrapyd
servidor que ejecuta utilizando sólo el mando scrapy
de dentro de mi directorio del proyecto Scrapy. La ejecución de scrapy server
desde el directorio de nivel superior de mi proyecto Scrapy se obtiene la siguiente:
$ scrapy server
UserWarning: Cannot import scrapy settings module my_scrapy_project_name.settings
warnings.warn("Cannot import scrapy settings module %s" % scrapy_module)
2012-08-31 21:58:31+0200 [-] Log opened.
2012-08-31 21:58:32+0200 [-] Scrapyd web console available at http://localhost:6800/
2012-08-31 21:58:32+0200 [Launcher] Scrapyd started: max_proc=8, runner='scrapyd.runner'
2012-08-31 21:58:32+0200 [-] Site starting on 6800
2012-08-31 21:58:32+0200 [-] Starting factory <twisted.web.server.Site instance at 0x101dd3d88>
El servidor está funcionando sin ningún problema, sin embargo, el archivo settings.py
de mi proyecto Scrapy no se puede encontrar debido a que la variable de entorno respectivo no es establecer más. Es por eso que hago lo siguiente en mi terminal:
export PYTHONPATH=/absolute/path/to/my/Scrapy/project
export SCRAPY_SETTINGS_MODULE=my_scrapy_project_name.settings
Lamentablemente, estos dos comandos no tienen ningún efecto. Cada vez que ejecuto scrapy server
(o cualquier otro comando de Scrapy), aparece el mensaje de que Scrapy no puede importar el módulo de configuración de su proyecto.
Mi scrapy.cfg
sólo tiene el siguiente contenido en la actualidad
[settings]
default = my_scrapy_project_name.settings
[deploy:scrapyd]
url = http://localhost:6800/
project = my_scrapy_project_name
Cuando intento de desplegar mi proyecto Scrapy al servidor scrapyd
, parece funcionar al principio, pero luego me di cuenta de que ninguno de los Se han subido arañas, probablemente porque el archivo de configuración no se pudo detectar. Aquí está la salida de la consola:
$ scrapy deploy scrapyd -p my_scrapy_project_name
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-
packages/scrapy/utils/project.py:17: UserWarning: Cannot import scrapy
settings module my_scrapy_project_name.settings
warnings.warn("Cannot import scrapy settings module %s" %
scrapy_module)
Building egg of event_crawler-1346531706
'build/lib' does not exist -- can't clean it
'build/bdist.macosx-10.6-intel' does not exist -- can't clean it
'build/scripts-2.7' does not exist -- can't clean it
zip_safe flag not set; analyzing archive contents...
Deploying event_crawler-1346531706 to http://localhost:6800/addversion.json
Server response (200):
{"status": "ok", "project": "my_scrapy_project_name", "version": "1346531706", "spiders": 0}
Pregunta 2: ¿Cómo hacer la exportación correcta de la variable de ruta y el medio ambiente por encima de que esta advertencia desaparece?
Pregunta 3: Desde el servidor scrapyd
parece funcionar muy bien sin embargo, ¿cómo puedo subir mis arañas correctamente?
¡Muchas gracias de antemano!
Gracias por indicarme la wiki. No estaba al tanto del hecho de que hay una wiki comunitaria en la página github de Scrapy. [Este tutorial] (http://www.sammyliu.com/2012/06/22/tutorial-scrapy-and-django) me dio la pista esencial: no solo tengo que mover el archivo 'scrapy.cfg' al directorio más alto del proyecto Django pero también a todo el directorio del proyecto Scrapy. Ahora mis arañas pueden cargarse correctamente en el servidor Scrapyd y se reconocen todas las variables de entorno. Entonces, como me indicaste la dirección correcta, te otorgo la recompensa. Besten Dank, Ralf. :) – pemistahl