我正在尝试使用PyUNO作为一种方法,在我的Django服务器中将不同的文档格式(doc、wordperfect、html等)转换为PDF。我花了一段时间让import uno开始工作。执行import pyuno时似乎失败了,并显示了一条ImportError: DLL Load Failed: The specified module could not be found消息。
我能让它工作的唯一方法是使用OpenOffice附带的Python2.6,但我真的想使用我的另一个2.6安装。PyUNO的文档都是针对Python2.2的,并且被认为是过时的。
我猜测需要将以下部分(或全部)文件从OpenOffice目录复制到我的站点包目录(或其子目录):
pythonloader.py
pythonloader.uno.ull
pythonloader.uno.ini
pythonscript.py
pyuno.pyd有没有人成功地实现了这一点?
这是在Windows上。
发布于 2010-12-09 08:10:05
对于简单的转换,您不需要重新发明轮子。看看unoconv:http://dag.wieers.com/home-made/unoconv/
如果python解释器与OpenOffice捆绑在一起,或者在一些打包程序已经为您完成了大量工作的Linux系统中,“'Import uno”将自动工作。
Pythonpath 1Pythonpath:对于Win32系统上的其他安装,您需要导入三个环境变量并将一项添加到您的中。详细的教程在http://user.services.openoffice.org/en/forum/viewtopic.php?f=45&t=36370&p=166783
您必须从OO-installed-Python获得的三个环境变量是:(使用Python 2.6和OO 3.1.2)
3\vnd.sun.star.pathname:c:\Program Files\OpenOffice.org Files\OpenOffice.org = 'c:\Program Files\OpenOffice.org 3\u URE\bin;c:\Program Files\OpenOffice.org bin
必须添加到其他Python安装中的pythonpath项是uno模块的位置:
现在你可以简单地“导入uno”。
Pyuno只与类似版本的Python兼容。因为OO 3.1捆绑了Python 2.6.1,所以pyuno只与另一个Python 2.6兼容。尝试将uno导入不同版本的Python将导致运行时错误。但在Alternative 2中有一种方法可以绕过这一点。
Python 2:对于安装在WIN32系统上的其他,您可以完全忽略Python-UNO桥,而使用Python-COM桥。您必须安装一个新模块,并且API有一些不同之处,但是您可以使用任何版本的Python,包括Python3。
(安装应用程序接口以获得COM访问权限:http://sourceforge.net/projects/pywin32/
发布于 2010-11-28 23:14:07
我也需要一个答案。我使用的是windows XP,我有一个从SQL server DB中提取数据并将其插入到模板excel文件中的系统。我不想将宏的etc添加到OpenOffice。但我想使用该服务来生成这些文件。
然而,我能够导入uno modude的唯一方法似乎是使用openoffice目录中的python.exe。即使这样,由于某些原因,我也不能将这个exec与我系统中的py文件关联起来,因此每次我都必须输入完整的路径名。
我知道在Linux中,Pyuno模块是一个插件,可以在普通的python中使用,但在windows中似乎并非如此。我已经在openoffice下列出了python exec的所有相关路径细节,并将它们复制到python2.7中,但pyuno仍然失败,无法找到DDL,并且没有引用什么DDL。
发布于 2010-12-03 09:30:33
我认为答案是“这是不可能的”。从网上的其他阅读来看,用于编译/链接python.org中的python可执行文件的stdlib似乎与用于编译/链接随OpenOffice.org分发的python.exe的stdlib不同。我不知道为什么,我仍然对两条蟒蛇给我相同的启动信息感到困惑。所以我可能在这里完全走错了路。
https://stackoverflow.com/questions/4270962
复制相似问题