2016-04-06 92 views
0

我想调试在pydev python在同一主机上的udf代码作为excel。 我看着official doc,但无法获得这个概念或者让它工作。 按文件我已经把这些线在我的UDF模块的末尾:xlwings - 在pydev eclipse中远程调试udf

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

的文档也说:

取决于哪个IDE,你用,你可能想在 运行的东西“调试”模式(例如,在情况下,你使用PyCharm或PyDev的):

我不明白“运行的东西”的意思之上。

另外,作为每用于远程调试的PyDev指令中,一个具有使用Eclipse中的下面的菜单按钮(一个或多个)中的一个:

  1. 附加到进程
  2. Pydev的调试服务器

,并添加以下代码:

import pydevd 
pydevd.settrace() 

我很困惑,一个需要到f所有步骤ollow在pydev中进行远程调试由excel制作的udf调用。任何人都可以共享udf & pydev调试的步骤?

Pydev是赢64位和Excel是2007年(32位)。

回答

0

使用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