不需要安装xlwings,如何分发xlwings宏?

4

我在寻找答案时遇到了一些困难 - 我正在编写一些简单的VBA代码,目标是让我的同事可以将其安装为插件或自定义选项卡。作为一名Python开发者,我当然更倾向于使用xlwings或pyxll开发,但据我所知,为了调用Python的任何内容,您都必须在每台计算机上安装xlwings?

理想情况下,我可以使用xlwings或pyxll开发Excel插件,并将其导出为普通的Excel插件,以便我的同事能够轻松安装。不幸的是,我无法在每台目标计算机上安装所有必需的Python模块。

这是否可能实现,还是只是一厢情愿?


嗨@dv3,你找到适合自己的解决方案了吗?我也遇到了类似的情况,但据我所见,我必须使用xlwings插件,并通过conda安装xlwings addin install,不确定如何绕过这一点。所有我的Python脚本都可以部署为PyInstaller,如此处https://docs.xlwings.org/en/stable/deployment.html建议的那样。 我刚刚将它们制作成了exe文件,但我认为我仍然需要要求用户运行“xlwings addin install”。 - Valentin_Ștefan
嗨@Valentin_Ștefan - 抱歉回复晚了。我其实不确定最终是如何解决的 - 但我肯定没有在所有机器上安装xlwings,因为公司有非常严格的政策...幸运的是,我的Excel和VBA时代已经结束了 :) 祝你好运! - dv3
4个回答

3

一种可能的方法是将所有所需的python文件(包括你的脚本、xlwings文件和python解释器)转换为独立的可执行文件。 xlwings网站给出了一个示例,演示了如何实现这一点(fibonacci_standalone.zip)。请参考部署文档页面。


1

我不是专家,但根据我的经验,这是一种一厢情愿的想法。

首先,即使使用 xlwings 插件,你的同事们也需要在计算机上安装 Python 才能运行。但是,如果他们已经安装了 Python(以及您使用的任何相关模块,如 numpy、xlwings 等),则可以将宏的副本直接提供给同事们(可能包括上面的 xlwings 源代码,这样他们就不需要将插件上传到 VBA)。

再次强调,我不是专家,但我已经尝试解决这个问题,找不到更好的解决方案。


0

我同意你的观点,最好的解决方案是每个人都在计算机上安装Anaconda,最好的是你不需要管理员权限来安装Anaconda,只需使用“仅限我”的选项即可。


0

有多种好的选择可以用于分发基于PyXLL的插件,包括将Python和PyXLL捆绑到单个安装程序中。

请参见https://www.pyxll.com/docs/userguide/distribution.html获取一些详细信息。

这里是一个链接,您需要创建一个MSI文件,用于包含Python运行时和所有Python代码的PyXLL插件https://github.com/pyxll/pyxll-installer

对于在组织内部部署,使用启动脚本通常是最佳方式,因为它使您能够轻松推送更新,而无需重新安装任何内容(https://www.pyxll.com/docs/userguide/distribution.html#using-a-startup-script-to-install-and-update-python-code)。

如果您需要任何帮助,请联系PyXLL支持。这是一个非常常见的用例,您想要在内部部署到非Python用户,因此他们在这方面有丰富的经验。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接