unoconv не работает в python

У меня проблема при использовании unoconv для преобразования документов в html из скрипта Python.

Он отлично работает, когда я запускаю скрипт или команды unoconv от имени пользователя root, но не получается, когда я делаю то же самое от другого пользователя. Я установил Ubuntu 13.04 Server и unoconv пакеты через apt-get install. Я выполнил скрипт на python как обычный (не root) пользователь

>>> from subprocess import call
>>> call(["unoconv","-f","html","-o","/var/www/project/tagging/templates/documents","/var/www/project/media/resume1.doc"])
Error: Unable to connect or start own listener. Aborting.

ls -l и дал следующее:

ubuntu@ip-54-194-10-89:/var/www$ ls -l
total 183184
drwxr-xr-x 24 www-data www-data      4096 Aug 31 15:20 project

проект имеет группу и владельца в качестве www-данных

Если кто-нибудь, кто может помочь мне с этим вопросом, это будет оценено.

5
задан 4 September 2013 в 13:34

2 ответа

Перед тем, как сделать это , вам нужно запустить прослушиватель unoconv , тогда только он запустится. откройте свой терминал с помощью CTRL + ALT + T и запустите прослушиватель как

unoconv --listener

. Затем попробуйте снова выполнить операцию конверсии.

ПРИМЕЧАНИЕ. убедитесь, что никакой другой процесс, использующий прослушиватель, не выполняется. Если какой-либо процесс это сделает, уничтожьте этот процесс, чтобы назначить прослушиватель текущему преобразованию.

надеюсь, что это помогает.

0
ответ дан 4 September 2013 в 13:34

Если вы звоните из Python, это более простое решение:

import os
import subprocess

# Copy the environment, and add home to the enviornment
env = os.environ.copy()
env['HOME'] = '/tmp'

p = subprocess.Popen(["unoconv","-f", "html", "-o", "output.html", 
   "input1.doc"], env = env)
out, err = p.communicate()

Проблема заключается в том, что unoconv нужен записываемый каталог HOME для запуска прослушивателя. Когда вы звоните из django, этот каталог HOME не установлен. Установка вручную /tmp решает эту проблему.

0
ответ дан 4 September 2013 в 13:34

Другие вопросы по тегам:

Похожие вопросы: