Estoy usando supervisor para ejecutar una secuencia de comandos de python:

[program:twitter_track]
autorestart = true
numprocs = 1
autostart = false
redirect_stderr = True
stopwaitsecs = 1
startsecs = 1
priority = 99
command = python /home/ubuntu/services/twitter.py track
startretries = 3
stdout_logfile = /home/ubuntu/logs/twitter_track.log

Pero el proceso no se inicia. Aquí es lo que el registro de error que dice:

Traceback (most recent call last):
  File "/home/ubuntu/services/twitter.py", line 6, in <module>
    from mymodule.twitter.stream import TwitterStream
ImportError: No module named mymodule.twitter.stream
Traceback (most recent call last):
  File "/home/ubuntu/services/twitter.py", line 6, in <module>

Parece que obtener mymodule, pero si me quedo twitter.py en es propio, todo funciona bien, solo tira este error cuando lo ejecuto a través del supervisor.

He añadido mymodule para el PYTHONPATH en mi ~/.archivo de perfil así:

export PYTHONPATH=$PYTHONPATH:/home/ubuntu/lib

¿Hay alguna razón por la que el guión iba a funcionar cuando se ejecuta a través de la terminal, pero no cuando se ejecuta a través del supervisor? Cualquier ayuda se agradece.

InformationsquelleAutor Hanpan | 2011-10-28

2 Comentarios

  1. 30

    Agregar el PYTHONPATH definición de la environment directiva en la supervisord archivo de configuración. Se debe ir por debajo de su [program:twitter_track] sección, así:

    environment=PYTHONPATH=/home/ubuntu/lib/
    

    Esto se asegurará de que su python proceso se ve el buen PYTHONPATH cuando supervisord inicia.

  2. 1

    Agregar el PYTHONPATH definición para el medio ambiente:

    [program:twitter_track]
    command = python /home/ubuntu/services/twitter.py track
    environment=PYTHONPATH=/home/ubuntu/lib
    

Dejar respuesta

Please enter your comment!
Please enter your name here