python - 在 python 中使用多处理库运行 pyglet 的多个实例
问题描述
我有一个 python 代码,可以可视化 python 中的驾驶场景。该代码使用pyglet。可以说代码是
vis_traj(input_A)
我需要同时可视化两个场景。我正在尝试使用多处理库在单独的处理器上运行它们。
p1 = Process(target = vis_traj, args=(input_A))
p2 = Process(target = vis_traj, args=(input_B))
p1.start()
p2.start()
但我得到一个错误,似乎他们不能同时使用 X 服务器:
XIO:在 228 个请求(已处理 228 个已知)后,X 服务器“:1”上出现致命 IO 错误 25(设备的 ioctl 不合适),剩余 0 个事件。
XIO:在 230 个请求(230 个已知处理)后,X 服务器“:1”上出现致命 IO 错误 11(资源暂时不可用),剩余 18 个事件。
XIO:在 228 个请求(已处理 228 个已知)后,X 服务器“:1”上出现致命 IO 错误 11(资源暂时不可用),剩余 0 个事件。
有没有办法规避这个错误?
解决方案
我在努力寻找答案时遇到了这个问题。pyglet
通过将所有相关的类和导入移动到我运行的函数中,我能够让我的代码工作Process()
。我怀疑该pyglet
库的全局状态对于每个进程都必须是唯一的。
另一个答案向我暗示了这一点,但我现在找不到它指出了我正确的方向。
推荐阅读
- arrays - 使数组声明适用于所有 linux shell
- android - 在所有操作系统版本中使用旧版本的 DatePicker
- sql - sql regex_replace 对来自多个表的指定列
- python - 在 Ubuntu 18.04 上打开幻灯片
- sql - 从日期差大于某个值的表中获取值
- jmeter - 断言响应数据失败
- swift - 为什么节点在 SceneKit 中的位置不一致?
- c# - 使用 Linq 表达式进行 C# 动态数据库过滤
- perl - 如何通过在 Perl 中传递其十六进制等效值(IEEE 格式)来获取浮点数?
- session - 在 WebAPI 和 WebForms 之间传递数据