有关此主题的一些相关主题here和here,但它们似乎有点过时了.
我刚刚下载了内置Python 3.3.0的LibreOffice 4.使用Python我可以很好地导入和使用UNO,并从我的Python脚本控制Office.但是,我的许多其他模块都没有从Python中丢失 – 而UNO是我的Python中唯一缺少的模块.
有什么方法可以为我的本地Python安装pyuno吗? LibreOffice源代码树包含一个pyuno / source树,但我不知道如何构建/将其集成到另一个Python树中.
这里有经历吗?救命?提示? Dos,Don’ts,Dohs?
编辑answer below适用于Linux,我没有问题扩展PYTHONPATH导入uno. Mac上的问题有所不同,所以请看the other answer.
编辑当修补Python路径时,绝对要考虑this anwer!
解决方法:
一旦你尝试运行PyUNO关闭任何其他python可执行文件而不是LO提供的可执行文件,事情就会变得粗糙.
Mac上的SEGV是因为LO的libpyuno.dylib(通过libuno.dylib加载,后者通过“import uno”加载)引用@ loader_path / LibreOfficePython.framework / Versions / 3.3 / LibreOfficePython(在其上运行“otool -L”) file;当前LO主站的路径;各种LO版本的路径略有不同).当从与LO不同的python进程运行时,这意味着在该进程中将有两个python运行时(并且LO可能甚至没有正确初始化),并且导致在LibreOfficePython中的某个地方出现SEGV. (这恰好在Linux上工作得更好,其中libpyuno.so引用libpython3.3m.so,并且通常通过其RPATH发现LO python旁边的一个,但是如果任何libpython3.3m.