代码之家  ›  专栏  ›  技术社区  ›  Himanshu Poddar

无法导入freegames python包:AttributeError:模块“collections”没有属性“Sequence”

  •  0
  • Himanshu Poddar  · 技术社区  · 4 年前

    Python版本:3.10

    我正试图安装 freegames 使用以下pip命令的python包

    C:\Users\praty>pip install freegames
    Defaulting to user installation because normal site-packages is not writeable
    Collecting freegames
      Downloading freegames-2.3.2-py2.py3-none-any.whl (108 kB)
         |████████████████████████████████| 108 kB 504 kB/s
    Installing collected packages: freegames
    Successfully installed freegames-2.3.2
    

    但是在我的python环境中导入相同内容时,我遇到了这个错误

    C:\Users\praty>python
    Python 3.10.0 (tags/v3.10.0:b494f59, Oct  4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import freegames
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\Users\praty\AppData\Roaming\Python\Python310\site-packages\freegames\_init_.py", line 61, in <module>
        from .utils import floor, line, path, square, vector
      File "C:\Users\praty\AppData\Roaming\Python\Python310\site-packages\freegames\utils.py", line 77, in <module>
        class vector(collections.Sequence):
    AttributeError: module 'collections' has no attribute 'Sequence'
    

    我该如何解决同样的问题?

    0 回复  |  直到 4 年前
        1
  •  12
  •   phd    4 年前

    相当长的一段时间 Sequence 可从导入 collections :

    $ python2.7 -c "from collections import Sequence"
    $ python3.4 -c "from collections import Sequence"
    $ python3.5 -c "from collections import Sequence"
    $ python3.6 -c "from collections import Sequence"
    

    从Python 3.7开始,出现了一个警告,该类已被移动到 collections.abc :

    $ python3.7 -c "from collections import Sequence"
    -c:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working
    $ python3.8 -c "from collections import Sequence"
    <string>:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
    $ python3.9 -c "from collections import Sequence"
    <string>:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
    

    在Python 3.10中,这变成了一个错误:

    $ python3.10 -c "from collections import Sequence"
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    ImportError: cannot import name 'Sequence' from 'collections' (/home/phd/.local/lib/python3.10/collections/__init__.py)
    $ python3.10 -c "from collections.abc import Sequence"
    

    向的作者报告问题 freegames 。降级到Python 3.9。要知道,您永远不应该如此快速地升级到最新和最棒的版本。

        2
  •  -1
  •   Siavash Mortezavi    3 年前