Celery в Windows: доступ subprocess.call запрещен в Celery, отлично работает в Django

У меня есть следующая задача:

@task(track_started = True)
def run_transcode_server():
    commands = ('java', '-cp', settings.TRANSCODE_CLASSPATH, settings.TRANSCODE_JAVA_CLASS)
    subprocess.call(commands)

Вызов subprocess.call непосредственно в оболочке django работает отлично. Однако, когда сельдерей пытается запустить эту задачу, возникает следующая ошибка: WindowsError: [Error 5] Access is denied.

Я запускаю все под одним и тем же пользователем (это моя среда разработки).

Чем это вызвано? Почему сельдерей не может выполнять подпроцессы?


person Marcin    schedule 28.01.2012    source источник
comment
Вы запускаете оболочку Django и celeryd от одного и того же пользователя?   -  person demalexx    schedule 28.01.2012


Ответы (1)


Что-то подобное здесь: https://stackoverflow.com/a/7130809/1049127

Вы пытались написать полный путь к исполняемому файлу Java?

person StefanoP    schedule 28.01.2012
comment
Оказывается, я забыл, что хотя шелл и работает с java, когда я вызываю его из pythong, мне нужно вызывать java.exe. - person Marcin; 28.01.2012