首页 > 解决方案 > 在 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 个事件。

有没有办法规避这个错误?

标签: pythonpython-multiprocessingpygletxserver

解决方案


我在努力寻找答案时遇到了这个问题。pyglet通过将所有相关的类和导入移动到我运行的函数中,我能够让我的代码工作Process()。我怀疑该pyglet库的全局状态对于每个进程都必须是唯一的。

另一个答案向我暗示了这一点,但我现在找不到它指出了我正确的方向。


推荐阅读