linux - 如何知道 Libreoffice 安装在 Docker 映像中的什么位置?
问题描述
我正在尝试使用 libreoffice 将 docx 文档转换为 PDF,如下所示:
from subprocess import Popen
LIBRE_OFFICE = r"C:\Program Files\LibreOffice\program\soffice.exe"
def convert_to_pdf(input_docx, out_folder):
p = Popen([LIBRE_OFFICE, '--headless', '--convert-to', 'pdf', '--outdir',
out_folder, input_docx])
print([LIBRE_OFFICE, '--convert-to', 'pdf', input_docx])
p.communicate()
sample_doc = 'file.docx'
out_folder = 'some_folder'
convert_to_pdf(sample_doc, out_folder)
但是,我正在处理 Linux Docker 映像。所以我不需要在LIBRE_OFFICE
变量中指定什么路线。有人知道吗?
我在 Dockerfile 中用于安装 libreoffice 的命令是RUN apt-get update && apt-get -y install libreoffice
解决方案
在 linux 上,该which
命令会告诉您可执行文件的安装位置。例如在我的系统上
$ which libreoffice
/usr/bin/libreoffice
您通常可以为每个可执行文件执行此操作,还可以检查是否安装了可执行文件。即使which
命令的输出是符号链接,这种方法也可以工作。
推荐阅读
- android - 调用 requiresPermission-annotated 方法时缺少权限提示
- excel - 合并来自不同 Excel 工作表基础列标题的数据
- python - 使用最小二乘法求解任意“Y”的矩阵乘法“AB=Y”中的“A”“B”
- android - 在 AppCompatActivity 中几乎全屏显示 DialogFragment,但仍保持工具栏可见
- sql-server - SSIS 错误“转换失败,因为数据值溢出指定类型”
- amazon-web-services - ECS 上蓝/绿部署所需的 Cloudformation 脚本
- android - 我如何将完整的 base 64 图像字符串发送到 json 请求 android
- php - 如何使用导入excel更新数据库中的数据
- java - 如何修复“NoClassDefFoundError KieServices.Factory”
- design-patterns - 分布式消息模式:为什么命令只能有一个侦听器?