【发布时间】:2020-06-10 08:44:09
【问题描述】:
在 ubuntu 上使用 Libreoffice 转换文件时出错:
CompletedProcess(args=['soffice', '--headless', '--convert-to', 'txt:Text', '/var/www/Project/temp/e4bac2c2e7c04eb79cfa522967a30dd3.docx', '-- outdir', '/var/www/Project/temp/'], returncode=77, stdout=b'', stderr=b'javaldx failed!\nWarning: failed to read path from javaldx\n')
使用子流程:
process = subprocess.run(['soffice', '--headless', '--convert-to', 'txt:Text', path_docx, '--outdir', settings.TEMP_ROOT], stdout=subprocess .PIPE, stderr=subprocess.PIPE, timeout=timeout)
~# java --version
openjdk 11.0.6 2020-01-14 OpenJDK 运行时环境(build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1) OpenJDK 64-Bit Server VM(build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1,混合模式,共享)
【问题讨论】:
-
这个问题是因为您的应用程序在没有适当权限的环境中运行引起的。我遇到了同样的问题,我可以在我的 java.exec 调用之外重现它:
sudo -u tomcat8 soffice --headless.....我认为 appArmor 正在阻止 libreOffice 打开另一个转换所需的可执行文件。将继续尝试解决此问题并进行更新。
标签: python linux ubuntu libreoffice