将 pyno 与我现有的 python 安装一起使用

2024-01-14

我正在尝试使用 PyUNO 作为从 Django 服务器内将不同文档格式(doc、wordperfect、html 等)转换为 PDF 的方法。我很难受import uno上班。做的时候好像失败了import pyuno,带有一条消息ImportError: DLL Load Failed: The specified module could not be found.

我可以让它工作的唯一方法是使用 OpenOffice 附带的 Python 2.6,但我真的想使用我的其他 2.6 安装。 PyUNO 的文档都是针对 Python 2.2 的,并且据说已经过时了。

我猜测以下部分(或全部)文件需要从 OpenOffice 目录复制到我的 site-packages 目录(或其某些子目录):

pythonloader.py
pythonloader.uno.ull
pythonloader.uno.ini
pythonscript.py
pyuno.pyd

有没有人成功地让它发挥作用?

这是在 Windows 上。


对于简单的转换,您无需重新发明轮子。看看unoconv:http://dag.wieers.com/home-made/unoconv/ http://dag.wieers.com/home-made/unoconv/

如果 python 解释器与 OpenOffice 捆绑在一起,或者在某些 Linux 系统中,打包程序已经为您完成了大量工作,则“Import uno”将自动工作。

替代方案1:对于 Win32 系统上的其他 Python 安装,您需要导入三个环境变量并向 Pythonpath 添加一项。详细教程位于

您必须从 OO 安装的 Python 中获取并添加到其他安装的 Python 中的三个环境变量是: (使用Python 2.6和OO 3.1.2)

  • os.environ['URE_BOOTSTRAP'] = 'vnd.sun.star.pathname:c:\Program Files\OpenOffice.org 3\program\fundamental.ini'
  • os.environ['UNO_PATH'] = 'c:\Program Files\OpenOffice.org 3\program\'
  • os.environ['PATH'].append('c:\Program Files\OpenOffice.org 3\URE\bin;c:\Program Files\OpenOffice.org 3\Basis\program;')

您必须添加到其他 Python 安装中的 pythonpath 项是 uno 模块的位置:

  • sys.path.append('C:\Program Files\OpenOffice.org 3\Basis\program')

现在您可以简单地“导入 uno”。

Pyuno 仅与类似版本的 Python 兼容。由于 OO 3.1 捆绑了 Python 2.6.1,因此 pyuno 仅与另一个 Python 2.6 兼容。尝试将 uno 导入到不同版本的 Python 中将导致运行时错误。但替代方案 2 中有一种解决方法。

替代方案2:对于WIN32系统上的其他Python安装,您可以完全忽略Python-UNO桥并使用Python-COM桥。您必须安装一个新模块,并且 API 有一些差异,但您可以使用任何版本的 Python,包括 Python3。

  • 安装 pywin32module 以获取 COM 访问权限:http://sourceforge.net/projects/pywin32/ http://sourceforge.net/projects/pywin32/
  • API差异讨论:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 pyno 与我现有的 python 安装一起使用 的相关文章

随机推荐