【金蝶二开案例.Python插件.debug调试成功】中间碰见挺多坑,在这里做个总结
@[TOC](【金蝶二开案例.Python插件.debug调试成功】中间碰见挺多坑,在这里做个总结)
【保姆级】Python插件也可以调试了:https://wenku.my7c.com/article/583031196427458048?productLineId=1&lang=zh-CN
【官方案例】官方案例快递100及快递管家编写并调试简单的Python插件:https://wenku.my7c.com/article/469226787164054272?productLineId=1&isKnowledge=2&lang=zh-CN
## 1. 有说新版不支持python断点了,其实是支持的,只是按照官方之前的步骤操作在注册时会提示错误,调试脚本换种写法就可以了
![企业微信截图_17216356407759.webp](/download/0100a0050f651a1540e3b239361f63d424c8.webp)
![企业微信截图_17216359887891.webp](/download/0100c6d959eeaa3c430bbf533928aeaf64e7.webp)
## 2. 调试脚本代码(换另一个种写法)感谢@齐111大佬的耐心指导
```python
# 将官方这几行代码注释掉
# g = globals()
# for v in ("this",):
# scope.SetVariable(v, g[v])
# 替换成这种写法方案,即可正常注册
scope.SetVariable("this", this)
```
## 3. 除此之外还有以下特别注意的点 ,可能会碰到的问题
### 3.1 执行操作报错 这个文件是字符编码编译问题
```python
Non-ASCII character '\xd6' in file D:\WorkSpace\TXQM\Python_debug\debug_test\debug_test.py on line 9, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
```
#### 3.1.1 解决方案
```python
在代码最最前面加上这行即可 指定字符集即可
#-*- encoding:utf-8 -*-
```
参考:https://www.jianshu.com/p/d6db7eb05543
## 4. 完整调试代码
```python
# -*- encoding:utf-8 -*-
import clr
clr.AddReference("IronPython")
from IronPython.Hosting import Python
def wrap_d(f):
func_name = f.__name__
del f
def wrapper(e):
engine = Python.CreateEngine({"Debug": True})
scope = engine.CreateScope()
this.View.ShowWarnningMessage("进调试文件了!!")
# 由于安全原因,不支持'globals'调用? 8.0 已经不支持此方式断点调试
# g = globals()
# for v in ("this",):
# scope.SetVariable(v, g[v])
# 替换方案
scope.SetVariable("this", this)
# 调试文件入口
engine.CreateScriptSourceFromFile(
"D:\WorkSpace\TXQM\test\Code\erp_query_sql\erp_query_sql.py"
).Execute(scope)
return getattr(scope, func_name)(e)
return wrapper
# 需要调试的方法均需要列在下面
@wrap_d
def BarItemClick(e):
pass
@wrap_d
def DataChanged(e):
pass
# 调试执行入库 指定以上路径Py文件中需要调试的方法
@wrap_d
def AfterEntryBarItemClick(e):
pass
```
## debug调试成功进入断点,这样就可以愉快的写代码了
![企业微信截图_17217283282857.webp](/download/01005db9e05e9fdc490abe4e2e1e9baa84e1.webp)
社区上关于Python代码调试的文章不多,而且都是比较旧的版本,按以下几个教程基本都不怎么能够顺利进入断点,在这里结合我在断>点调试过程中碰见的坑做个总结吧。 |
【金蝶二开案例.Python插件.debug调试成功】中间碰见挺多坑,在这里做个总结
@[TOC](【金蝶二开案例.Python插件.debug调试成功】中间碰见挺多坑,在这里做个总结)社区上关于Python代码调试的文章不多,而且都是比较旧...
点击下载文档
本文2024-09-16 17:38:26发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-17001.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章