在使用unoconv从Python脚本将docs转换为html时,我遇到了一个问题。
当我以根用户的身份运行脚本或unoconv命令时,它运行得很好,但当我从其他用户执行同样的操作时,它就会失败。我已经通过apt-get安装安装了Ubuntu13.04Server和unoconv软件包。我以普通用户(不是root用户)的身份执行python脚本。
>>> 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-data。
如果有人能在这个问题上帮助我,我们将不胜感激。
发布于 2016-03-22 13:26:09
如果您是从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需要一个可写的主目录才能启动侦听器。当您从django调用时,没有设置该主目录。手动将其设置为/tmp解决了此问题。
https://askubuntu.com/questions/341150
复制相似问题