activities
latest
false
开发者活动
- 概述
- 加密
- 数据库
- Java
- Python
- 网页 API
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。
新发布内容的本地化可能需要 1-2 周的时间才能完成。
已知问题和限制
针对使用 Python 活动包运行 Python 脚本时出现的已知问题的解决方案,包括线程、文件路径和类型转换问题。
使用 Python 活动包运行 Python 脚本时,以下行为值得了解。每个问题都包含解决方法。
脚本在后台线程中运行
症状:脚本失败,并显示以下错误,通常是在导入安装信号处理程序的库(例如xlwings或其他 Excel 或 GUI 网桥)时:
ValueError: set_wakeup_fd only works in main thread of the main interpreter
原因: Python 作用域内的代码在工作线程上运行,而不是在流程主线程上运行,因此需要主线程的 Python 代码将失败。
操作:使用以下方法之一:
- 首选不需要主线程的库(例如
openpyxl或pandas来读取和写入 Excel 文件,而不是xlwings。 - 在单独的 Python 进程中运行主线程敏感代码,使用
subprocess启动并指向真实的 Python 可执行文件,例如shutil.which("python3")返回的进程。
在活动中, sys.executable指向主机流程,而不是 Python 解释器,因此它不是subprocess的有效目标。
针对意外文件夹的相对文件路径解析
症状: open("data.csv")等相对路径读取或写入非预期位置,且文件似乎缺失。
原因:未设置“工作文件夹”属性时,正在运行的脚本的工作目录是活动自己的 Runtime 文件夹,而不是您的项目文件夹。
操作:使用以下方法之一:
- 将“Python 作用域”活动的工作文件夹属性设置为应运行脚本的文件夹。
- 在脚本开头调用
os.chdir(...)。 - 使用绝对路径访问文件。
“获取 Python 对象”无法转换每种 Python 类型
症状: “获取 Python 对象”活动失败,并显示以下错误:
Get Python Object: Error converting Python object
原因:该活动将 Python 返回值转换为.NET 类型。复杂或原生 Python 对象(例如dict 、 list或 P集中的DataFrame )无法总是可以转换的。
操作:从 Python 函数返回一个字符串,并在工作流中将其转换:
- 在 Python 中,使用
json.dumps(...)将值序列化为 JSON,df.to_json(orient="records")对于 Panas,则使用DataFrame。 - 将使用“获取 Python 对象”的值检索为
String。 - 在您的工作流中将其反序列化。