我在CLI上使用libreoffice將一些文檔轉換爲Django中的PDF。Django/Python使用shell(os.system/Popen)在生產中不起作用將PDF轉換
這是我的看法(也試過在模型保存方法):
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
當我通過網站運行它們只是不工作 - PDF文件不是基因評級。
事情是:這兩種方法在我的本地環境中工作既當他們所在的功能從$ python manage.py shell
所謂的問題是隻在生產。
- 的Django 1.4
- 的Python 2.7.3
- Server版本:阿帕奇/ 2.2.22(Ubuntu的)服務器建:2012年2月13日1點51分50秒(Rackspace公司)
請注意,我想我可能會遇到這個bug:Popen does not work anymore with apache/wsgi and python 2.7.2? ...
雖然格雷厄姆的工作如下(我添加到我的apache2.conf
)似乎沒有改變任何東西。
WSGIApplicationGroup %{GLOBAL}
我的系統管理員的技能都不是很大,雖然,我可能已經這樣做了錯誤的,我完全難倒,任何意見或其他東西來嘗試或迂迴路線,將不勝感激。
系統管理員常見的調試工具是strace。 – jpic