我在CLI上使用libreoffice将一些文档转换为Django中的PDF.
这在我看来(也在模型的save方法中尝试过):
outdir = '/'.join([settings.MEDIA_ROOT,'pdf']) command = ['libreoffice','--headless','--convert-to','pdf','-outdir',outdir,form.instance.upload.path] stdout,stderr = subprocess.Popen(command).communicate()
我也尝试了以下代替subprocess.Popen:
os.system("libreoffice --headless --convert-to pdf --outdir %s %s" % (outdir,instance.upload.path))
然后我检查出来:
# quick check new file exists with open("%s/%s.pdf" % (outdir,os.path.splitext(instance.upload.name)[0])): pass
事情是:这两种方法都适用于我的本地环境以及它们所在的函数是从$python manage.py shell调用的
问题只出在生产中.
> Django 1.4
> Python 2.7.3
>服务器版本:Apache / 2.2.22(Ubuntu)服务器内置:2012年2月13日01:51:50(Rackspace)
请注意,我以为我可能会遇到这个错误:Popen does not work anymore with apache/wsgi and python 2.7.2? …
虽然格雷厄姆的工作方式如下(我将其添加到我的apache2.conf中)似乎没有改变任何东西.
WSGIApplicationGroup %{GLOBAL}