在宏开发期间将 python 脚本“部署”到 LibreOffice 的首选方法?
Posted
技术标签:
【中文标题】在宏开发期间将 python 脚本“部署”到 LibreOffice 的首选方法?【英文标题】:Preferred method of "deploying" python scripts to LibreOffice during macro development? 【发布时间】:2012-05-24 17:10:34 【问题描述】:至少在 Linux 上使用 Python 为 LibreOffice / OpenOffice 开发宏时,我了解到您必须将 py 脚本放在特定目录中。
Python LibreOffice/OOo 开发人员是否有首选方法来部署这些脚本,或者是否有其他方法可以在 LibreOffice/OOo 中指定您希望这些脚本的位置?
【问题讨论】:
【参考方案1】:也许一个不错的方法是熟悉 Python 设置工具本身 (http://packages.python.org/an_example_pypi_project/setuptools.html),并编写一个适当的 setup.py 脚本来放置所有需要的文件在适当的目录中。
您的宏甚至可以使用“easy_install”Python 框架进行安装
【讨论】:
setup.py 是否类似于 make 或 ant 或 maven 或 rake 任何其他数量的构建工具? 这里是 setup.py 是什么问题的答案:***.com/questions/1471994/what-is-setup-py【参考方案2】:为避免重新加载已更改的宏(即使将其部署到正确的文件夹),您可以让 LibreOffice 在开发期间侦听套接字:
import uno
def getModel():
# get the uno component context from the PyUNO runtime
localContext = uno.getComponentContext()
# create the UnoUrlResolver
resolver = localContext.ServiceManager.createInstanceWithContext(
"com.sun.star.bridge.UnoUrlResolver", localContext)
# connect to the running office
context = resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext")
manager = context.ServiceManager
# get the central desktop object
desktop = manager.createInstanceWithContext("com.sun.star.frame.Desktop", context)
# access the current writer document
return desktop.getCurrentComponent()
当你准备好在this article中部署时,我解释了如何替换这个开发道具
【讨论】:
始终欢迎提供指向潜在解决方案的链接,但请add context around the link,以便您的其他用户知道它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。考虑到仅仅是指向外部站点的链接是Why and how are some answers deleted? 的一个可能原因。以上是关于在宏开发期间将 python 脚本“部署”到 LibreOffice 的首选方法?的主要内容,如果未能解决你的问题,请参考以下文章
在开发期间将文件复制到/从 NSDocumentDirectory
Python无法使用PyAutoGui补间将鼠标作为函数中的随机值移动
Spring Webflow:如何在转换期间将属性从一个流传递到另一个流?