libreoffice python_为私有Python构建安装pyuno(LibreOffice)

一旦您尝试从LO提供的python可执行文件以外的任何其他python可执行文件运行PyUNO,事情就会变得很棘手。在

Mac上的SEGV是因为LO的libpyuno.dylib(通过加载李伯诺.dylib,然后通过“import uno”)引用@loader_path加载/LibreOfficePython.framework/Versions/3.3/LibreOfficePython(对该文件运行“otool-L”;路径与当前LO主机相同;不同LO版本的路径略有不同)。当从与LO不同的python进程运行时,这意味着该进程中将有两个python运行时(LO的一个甚至可能没有正确初始化),这将导致LibreOfficePython中的某个地方出现SEGV。(这在Linux上运行得更好利比乌诺引用libpython3.3m.so,通常通过它的RPATH找到它自己旁边的LO python,但是如果任何libpython3.3m.so碰巧已经加载到进程中(从另一个python加载),Linux加载程序很乐意重新使用它

Mac上的一个大问题是使用install_name_工具“重新布线”libpyuno.dylib引用其他python的Python.framework/Versions/3.3/Python(按绝对路径)而不是@loader_path/LibreOfficePython.framework/Versions/3.3/libreofficeptithon.图书馆。在

另一个问题是LO的python(在Linux和Mac上)实际上是一个围绕真正的python可执行文件的shell脚本。它需要设置许多env-vars(它们的用途甚至在脚本中有记录)。为了让PyUNO在不同的python上工作,您还需要设置这些env变量,特别是UNO_nupath、URE_BOOTSTRAP和PYTHONPATH中找到特定于LO的lib的部分(而不是python本身附带的那些lib)。请注意,这些env vars值的细节在LO版本中有所不同。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值