首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python 3上的IAC协议接口错误

python 3上的IAC协议接口错误
EN

Stack Overflow用户
提问于 2017-09-01 16:30:15
回答 1查看 88关注 0票数 1

我想通过python使用excell (.xls很可能是每次.ods转换),同时维护表单的所有原始内容。与xlutils (http://www.python-excel.org/)不同,在我看来,iac-protocol (http://pythonhosted.org/iac-protocol/index.html)更适合/更优雅地维护工作表的样式、公式、下拉列表等。启动iac的服务器或解释器(iacs/iaci)的步骤之一是初始化包含此命令的接口:

将iac.app.libreoffice.calc导入为localc

import iac.app.libreoffice工作正常

移动到calc级别导入iac.app.libreoffice.calc引发以下错误

导入"/usr/lib/python3.4/site-packages/iac/app/libreoffice/calc.py",跟踪(最近一次调用):文件"",第1行,文件iac.app.libreoffice.calc第11行,从uno导入getComponentContext ImportError:无法导入名称'getComponentContext'

根据我到目前为止在这个论坛上学到的东西,它可能与两个模块之间的方法名称的双重性有关。这就是我被困的地方。我如何了解其他哪个模块有这样的方法名称,以及如何修复它?iac协议和unotools都是通过pip3下载的模块。我没有在任何脚本中创建这种名称的方法。

提前感谢您的任何建议!

Python3.4 on Scientific Linux7.3版(氮) LibreOffice 5.0.6.2 00(构建:2)

EN

回答 1

Stack Overflow用户

发布于 2017-09-01 19:40:47

为了缩小问题的范围,一些问题:

  • 您是否首先启动了libreoffice监听套接字?
  • import iac.app.libreoffice.calc之前,您还导入了其他内容吗?
  • 当您在终端中启动python并输入from uno import getComponentContext时会发生什么

我在Linux上安装了iac-协议,并且能够import iac.app.libreoffice.calc,然后使用它。安装过程很复杂,所以如果您的包是如何安装的,或者它可能无法在基于RHEL的系统上工作,我不会感到惊讶。首先,它要求我安装gnumeric。

为我工作的Calc "Hello“代码如下所示。

代码语言:javascript
运行
复制
libreoffice "--accept=socket,host=localhost,port=18100;urp;StarOffice.ServiceManager" --norestore --nofirststartwizard --nologo --calc &
python3
>>> import iac.app.libreoffice.calc as localc
>>> doc = localc.Interface.current_document()
>>> sheet = doc.getSheets().getByIndex(0)
>>> cell = sheet.getCellByPosition(0,0)
>>> cell.setString("Hello, World!")

还有一个想法:您考虑过从PyUNO开始使用直接的import uno而不是包装器库吗?这将避免对可能导致问题的一些额外库的依赖。还有更好的文件 (直指PyUNO )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46004491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档