我想在与excel相同的主机上的pydev中调试python udf代码。 我看了official doc,但无法得到这个概念或让它运转起来。 根据文档,我将这些行放在我的udfs模块的末尾:
if __name__ == '__main__':
xw.serve()
该文件还说:
根据您使用的IDE,您可能希望运行 “调试”模式(例如,如果您使用PyCharm或PyDev):
我不明白上面是什么'运行'。
另外,根据pydev远程调试说明,必须使用Eclipse中的以下菜单按钮之一:
并添加此代码:
import pydevd
pydevd.settrace()
我很困惑在pydev中进行远程调试所需的所有步骤以及从excel进行的udf调用。任何人都可以分享udf和amp; pydev调试?
Pydev赢得64位,excel是2007(32位)。
答案 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
。