可以改进从Excel调用Python的运行时(通过xlwings RunPython)吗?

时间:2016-09-29 12:52:43

标签: python excel vba pycharm xlwings

我编写了一个使用xlwings库的Python脚本,以便从特定的电子表格中获取函数输入。我的想法是从Excel运行此代码(已将xlwings模块作为VBA模块导入)。我可以像这样运行它(即从Excel中,使用VBA中的RunPython命令),或者我可以在PyCharm中运行脚本时设置Mock Caller,这样我就可以更容易地输入函数输入。

这个设置工作正常,在PyCharm中运行脚本时平均需要2秒钟。但是,当我从Excel运行它时,平均需要大约30秒(两次都给出相同的数据输入集)。

所以看起来Excel调用Python需要的时间相对较大 - 有没有人对如何加快速度有任何建议?这大概是从Excel运行python需要多长时间?

提前致谢

1 个答案:

答案 0 :(得分:0)

目前,xl​​wings的默认行为是每次调用RunPython时启动一个新的解释器会话。这自然带来了开销,虽然在现代系统上它通常只需要2-3秒,而不是你所看到的。 但是,在Windows上,您可以在VBA设置中切换OPTIMIZED_CONNECTION = True,然后使用在不同呼叫之间保持运行的COM服务器,在docs中阅读更多相关信息。