sitemapspider example crawl python django environment-variables scrapy

python - example - No se puede importar el módulo de configuración de Scrapy o su scrapy.cfg



scrapy sitemapspider (2)

Si observa la rama de código que genera esta excepción y la definición de la función más closest_scrapy_cfg que llama, el único lugar donde scrapy está buscando su scrapy.cfg está en el directorio desde el que ejecuta el comando y en cualquier directorio padre. Puede ejecutar os.chdir en su manage.py, o mover su scrapy.cfg al directorio desde el que se está ejecutando.

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 aquí . Por ejemplo, llamar

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

entonces obtengo esta excepción:

scrapy.exceptions.NotConfigured: Unable to find scrapy.cfg file to infer project data dir

Entonces, aparentemente Scrapy no puede encontrar el archivo scrapy.cfg porque no lo ejecuto desde el proyecto de Scrapy. Los otros comandos de Scrapy funcionan, sin embargo, porque en la settings.py del proyecto Django.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é Scrapy no puede detectar el archivo scrapy.cfg en mi configuración? ¿Cómo puedo resolver esto?

Como las cosas mencionadas anteriormente no funcionan, intenté scrapyd servidor scrapyd utilizando solo el comando scrapy desde mi directorio de proyectos de Scrapy. scrapy server desde el directorio de nivel superior de mi proyecto de Scrapy produce lo 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 se está ejecutando sin problemas, sin embargo, el archivo settings.py de mi proyecto Scrapy no se puede encontrar porque la variable de entorno respectiva ya no está configurada. 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

Desafortunadamente, estos dos comandos no tienen ningún efecto. Cada vez que 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 solo tiene el siguiente contenido en este momento:

[settings] default = my_scrapy_project_name.settings [deploy:scrapyd] url = http://localhost:6800/ project = my_scrapy_project_name

Cuando trato de implementar mi proyecto Scrapy en el servidor scrapyd , parece que funciona al principio, pero luego me di cuenta de que ninguna de las arañas se había subido, 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 entorno anterior para que esta advertencia desaparezca?

Pregunta 3: Dado que el servidor scrapyd parece funcionar bien, ¿cómo puedo cargar mis arañas correctamente?

¡Muchas gracias de antemano!


hay 3 enlaces dentro de la wiki de scrapy :

el primero y el segundo tratan los problemas con las configuraciones conflictivas de django y scrapy.

espero que esto ayude...

incluso esta pregunta sobre SO aborda muchos de los problemas de configuración entre django y scrapy