python中的新手:在Windows上使用Apache OpenOffice 4的pyodconverter

Posted

技术标签:

【中文标题】python中的新手:在Windows上使用Apache OpenOffice 4的pyodconverter【英文标题】:Newbie in python : pyodconverter with Apache OpenOffice 4 on Windows 【发布时间】:2014-10-18 09:22:41 【问题描述】:

我对Python一无所知,我需要在windows(XP和7)上使用pyodconverter转换文档。我使用这里给出的简单示例:http://www.oooninja.com/2008/02/batch-command-line-file-conversion-with.html

"C:\Program Files\OpenOffice.org2.4\program\soffice.exe" -headless -nologo -norestore -accept=socket,host=localhost,port=2002;urp;StarOffice.ServiceManager
"C:\Program Files\OpenOffice.org2.4\program\python" DocumentConverter.py test.odt test.pdf

它的作用就像一个魅力,从 openoffice 3 到 soffice.exe 的路径,但在 openoffice 4 中我收到了这条消息:

ImportError: No module named uno

所有其他导入的模块都会如此 (from os.path import abspath, isfile, splitext from com.sun.star.beans import PropertyValue from com.sun.star.task import ErrorCodeIOException from com.sun.star.connection import NoConnectException)

但是,如果我在与 python.exe 相同的目录中复制并执行 DocumentConverter.py,它就可以工作。所以肯定是路径问题。

我不能从这个目录调用 DocumentConverter.py,它必须从另一个目录调用 但我可以修改 DocumentConverter.py 或在同一目录中添加其他文件。

我看到 OpenOffice 3 和 4 之间的目录结构发生了变化,但不知道为什么它适用于 3 而不是 4。有什么想法吗?

【问题讨论】:

【参考方案1】:

在 OpenOffice 4 中使用 DocumentConverter.py 时,您必须修改搜索路径。

OpenOffice 4 中的 python.exe 似乎使用相对搜索路径而不是绝对路径,这就是从安装 OpenOffice 4 的目录之外的另一个目录执行 DocumentConverter.py 时出现错误的原因。

我可以通过在 DocumentConverter.py 中的“import uno”命令之前添加以下代码行来解决这个问题:

import sys
sys.path.append("C:\Program Files (x86)\OpenOffice 4\program")

【讨论】:

以上是关于python中的新手:在Windows上使用Apache OpenOffice 4的pyodconverter的主要内容,如果未能解决你的问题,请参考以下文章

使用 Anaconda (Python) 在 Windows 上安装 Pyomo

如何在 Windows 上运行 python dbus?

无法在我的 Windows 10 上安装“Turicreate”

在 Windows 上使用 C++ 中的 Select 函数进行轮询

如何在 Windows 10 上修复 Python 3 中的 notify2 'dbus' 错误

在非 Windows 平台(Linux 或 Mac)上使用 Python 中的 Access 数据库