在Windows上使用pyUno进行OpenOffice.org开发——选择哪种Python?
在家里,我在Linux系统上用pyUNO尝试用Python控制OpenOffice.org。我使用的是Python 2.6,感觉一切都很顺利。
现在我想在Windows上试试我的一个脚本(运行ODF文档的图形差异比较)。但是当我尝试运行时,出现了:
ImportError: No module named uno
根据udk: Python UNO Bridge和OpenOffice.org在Windows上运行Python的说明,我必须使用OpenOffice.org自带的Python解释器。
问题1:OpenOffice.org支持Python 2.6吗?
但是那个解释器是Python 2.3,这有点过时了!而且我的脚本使用了2.3不支持的一个功能(subprocess
模块)。
问题2:在Windows上,能否通过一个pyUNO插件来使用标准的Python发行版,而不是OpenOffice.org自带的Python?
到目前为止,我在搜索中没有找到可以安装到标准Python Windows发行版中的pyUNO模块……这让我有点意外,因为在Ubuntu Linux上,UNO在Python中支持得很好,只需:
apt-get install python-uno
另一个问题是:如果我想制作一个同时使用pyUNO和其他第三方库的程序怎么办?我不能在Windows的Python安装中安装pyUNO,那我是不是就得把其他第三方库安装到OpenOffice.org自带的Python里?这让创建更大、更完整的程序变得很困难。
我是不是漏掉了什么,还是我们现在只能这样了?
3 个回答
OpenOffice.org 3.1自带了Python 2.6.1版本。(我记得这个合并是最后一刻才决定的,惹恼了一些人,不过它确实在那儿,而且可以正常使用。)现在就只剩下文档是完全过时的了。 :)
根据OpenOffice的文档,它支持的Python版本非常落后——“将PyUNO迁移到Python 2.5的工作仍在进行中”,而Python 2.6甚至连计划都没有。所以说“目前只能忍耐这种情况”是个很合理的说法!-)
在Win32系统上,你可以把uno导入到你的系统Python里。(目前还不支持Python 3)。详细教程可以在这个链接找到:http://user.services.openoffice.org/en/forum/viewtopic.php?f=45&t=36370&p=166783。其实这并不难,你只需要设置三个环境变量,然后把一个项目添加到你的pythonpath里。
如果你想要更多的灵活性,可以使用COM-UNO桥接,而不是Python-UNO桥接。它们的语法基本上是很相似的,而且你可以使用任何版本的Python(包括Python3)。更多信息可以查看这个链接:http://user.services.openoffice.org/en/forum/viewtopic.php?f=45&t=36608&p=167909。