gpt4 book ai didi

python - 从 xlwings 调用时 Pycharm 中的断点

转载 作者:行者123 更新时间:2023-12-04 20:57:21 24 4
gpt4 key购买 nike

当我从 xlwings 调用 python 代码时,我无法让断点工作。

testme.py:

import xlwings as xw

def add(n):
result = []
while len(result) < n:
result.append(1+4)
return result

def xl_add():
sht = xw.Book.caller().sheets[0]
n = sht.range('B1').options(numbers=int).value
seq = add(n)
sht.range('C1').expand('vertical').clear_contents()
sht.range('C1').options(transpose=True).value = seq

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

我使用此 VBA 代码将 XL 表保存在同一目录中:
Sub CallTestMe()
RunPython ("import testme; testme.xl_add()")
End Sub

在 xlwings.bas 我将设置更改为:
PYTHON_WIN = "D:\Anaconda3\python.exe"
UDF_DEBUG_SERVER = True

然后我启动了 pycharm 并在 add(n) 中设置了一个断点,然后启动了调试器。
D:\Anaconda3\python.exe "D:\Program Files\JetBrains\PyCharm Community Edition 2017.1.4\helpers\pydev\pydevd.py" --multiproc --qt-support --client 127.0.0.1 --port 18601 --file D:/sletmig/xlwings/testme.py
pydev debugger: process 8684 is connecting

Connected to pydev debugger (build 171.4694.38)
xlwings server running, clsid={506E67C3-55B5-48C3-A035-EED5DEEA7D6D}

我调用 VBA 代码,它在 C 列中返回一行 5s 但没有命中断点 .在单元格 B1 中,我有一个数字 10。

软件版本
Pycharm 社区版 2017.4
xlwings v0.10.4
Python 3.6.1::Anaconda 4.4.0(32 位)
Office 2013 32 位
Windows 10、64 位

最佳答案

只能在 UDF 函数中设置断点,如下所示:

@xw.func
def double_sum(x, y):
"""Returns twice the sum of the two arguments"""
return 2 * (x + y)

def main():
# To run this with the debug server, set UDF_DEBUG_SERVER = True in the xlwings VBA module
xw.serve()

if __name__ == '__main__':
main()

断点是当您在 Pycharm 中启动服务器并从 XL =DOUBLE_SUM(1,2) 调用它时

关于python - 从 xlwings 调用时 Pycharm 中的断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44613365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com