xlwings - 在pydev eclipse中远程调试udf

时间:2016-04-06 17:47:30

标签: debugging xlwings

我想在与excel相同的主机上的pydev中调试python udf代码。 我看了official doc,但无法得到这个概念或让它运转起来。 根据文档,我将这些行放在我的udfs模块的末尾:

if __name__ == '__main__':
    xw.serve()

该文件还说:

  

根据您使用的IDE,您可能希望运行   “调试”模式(例如,如果您使用PyCharm或PyDev):

我不明白上面是什么'运行'。

另外,根据pydev远程调试说明,必须使用Eclipse中的以下菜单按钮之一:

  1. 附加到流程
  2. Pydev Debug Server
  3. 并添加此代码:

    import pydevd
    pydevd.settrace()
    

    我很困惑在pydev中进行远程调试所需的所有步骤以及从excel进行的udf调用。任何人都可以分享udf和amp; pydev调试?

    Pydev赢得64位,excel是2007(32位)。

1 个答案:

答案 0 :(得分:1)

使用xlwings,您不需要任何远程调试或附加到正在运行的进程,因此无需引入任何新代码,如settrace()。实际上,最好的事情是标准调试与xlwings开箱即用,因此可以与任何IDE一起使用。

您需要在VBA设置中设置UDF_DEBUG_SERVER = True。然后,当您重新计算Excel电子表格时,公式将给您一个错误。

这意味着您现在需要在最后运行包含此文件的Python文件:

if __name__ == '__main__':
    xw.serve()

这些行启动COM服务器。在Eclipse中,如果只是点击Run > Run last launched,它将正常工作,即当您再次重新计算UDF时,您将在PyDev的控制台中看到代码的任何输出(如打印命令)。

但是,要使代码在断点处停止,您需要选择Run > Debug Last Launched