【问题标题】:Python Error - TypeError: item 1 in _argtypes_ passes a union by value, which is unsupportedPython 错误 - 类型错误:_argtypes_ 中的项目 1 按值传递联合,这是不受支持的
【发布时间】:2020-05-10 13:40:09
【问题描述】:

我认为这不是特定于编程的错误,而是由某些库引起的。

我正在将我的项目转移到一台新 PC,我使用 python 3.7.6 使用 anaconda 等进行了新设置。在旧机器上执行任务工作正常,这里我也使用了带有 python 3.7 的 anaconda(不确定它是否是 3.7.6 但我可以检查一下,我只是在创建环境时使用 python=3.7)。

当我现在尝试运行我的程序时,我收到:

Exception in Tkinter callback
Traceback (most recent call last):
...    
TypeError: item 1 in _argtypes_ passes a union by value, which is unsupported.

这个错误很长,但它是由以下库引起的: 调用 gym.envs 然后调用一些 pyglet.libs

错误的最后一行是

...from pyglet.libs.x11 import xlib
  File "...7/lib/python3.7/site-packages/pyglet/libs/x11/xlib.py", line 2928, in <module>
    XEHeadOfExtensionList.argtypes = [XEDataObject]

感谢您的帮助!我不知道如何解决这个问题,甚至开始解决它。

【问题讨论】:

  • 似乎是python 3.7.6+版本的问题。找到了this thread关于这个问题。您能否仔细检查您正在运行的 pyglet 版本?版本1.4.9应该按照上面的线程解决问题。
  • 如果我想更新 pyglet 我收到错误:gym 0.15.4 有要求 pyglet=1.2.0,但你将拥有不兼容的 pyglet 1.4.10。健身房不兼容这个新版本?

标签: python tkinter anaconda typeerror pyglet


【解决方案1】:

降级你的 pyttsx3 版本:

pip install pyttsx3==2.71

【讨论】:

    【解决方案2】:

    目前似乎根本不支持在 python 版本 3.7.6+ 中使用gym+pyglet。

    pyglet 错误已在 1.4.9+ 中修复,但 gym 目前与这些版本不兼容。

    仍然可以简单地将 python 降级到 3.7.4,并且一切正常。

    【讨论】:

      猜你喜欢
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      • 2010-12-28
      • 2021-06-05
      • 2022-12-22
      • 1970-01-01
      • 2016-02-04
      相关资源
      最近更新 更多