UiPath Documentation
activities
latest
false
开发者活动
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 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 函数返回一个字符串,并在工作流中将其转换:

  1. 在 Python 中,使用json.dumps(...)将值序列化为 JSON, df.to_json(orient="records")对于 Panas,则使用DataFrame 。
  2. 将使用“获取 Python 对象”的值检索为String 。
  3. 在您的工作流中将其反序列化。

此页面有帮助吗?

连接

需要帮助? 支持(opens in new window)

想要了解详细内容? UiPath Academy(opens in new window)

有问题? UiPath 论坛(opens in new window)

保持更新