Unable to import freegames python package : AttributeError: module 'collections' has no attribute 'Sequence'
Question:
Python version : 3.10
I was trying to install the freegames python package using the following pip command
C:Userspraty>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
But while importing the same on my python environment I was getting this error
C:Userspraty>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:UserspratyAppDataRoamingPythonPython310site-packagesfreegames_init_.py", line 61, in <module>
from .utils import floor, line, path, square, vector
File "C:UserspratyAppDataRoamingPythonPython310site-packagesfreegamesutils.py", line 77, in <module>
class vector(collections.Sequence):
AttributeError: module 'collections' has no attribute 'Sequence'
How do I resolve the same?
Answers:
For quite some time Sequence
was importable from 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"
Starting from Python 3.7 there was a warning the class has been moved to 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
In Python 3.10 this became an error:
$ 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"
Report the problem to the author of freegames
. Downgrade to Python 3.9. Learn that you should never be so fast to upgrade to the latest and greatest versions.
This issue has been resolved
import collections.abc as collections
module 'collections' has no attribute 'Mapping', issue on MACOS for SDK installation
This way can solved my issue.
import collections
collections.Mapping = collections.abc.Mapping
collections.Sequence = collections.abc.Sequence
this is caused by the fact that you are using an old version od Django which is incompatible with python3.10.
You can either downgrade your python or upgrade your django (the latter can require a lot of changes on your code).
try this
sudo vim /usr/lib/python3.10/collections/__init__.py
search for line
from _weakref import proxy as _proxy
right below it, just paste
# my changes
#--------------
import collections
collections.Mapping = collections.abc.Mapping
collections.Sequence = collections.abc.Sequence
#--------------
Python version : 3.10
I was trying to install the freegames python package using the following pip command
C:Userspraty>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
But while importing the same on my python environment I was getting this error
C:Userspraty>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:UserspratyAppDataRoamingPythonPython310site-packagesfreegames_init_.py", line 61, in <module>
from .utils import floor, line, path, square, vector
File "C:UserspratyAppDataRoamingPythonPython310site-packagesfreegamesutils.py", line 77, in <module>
class vector(collections.Sequence):
AttributeError: module 'collections' has no attribute 'Sequence'
How do I resolve the same?
For quite some time Sequence
was importable from 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"
Starting from Python 3.7 there was a warning the class has been moved to 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
In Python 3.10 this became an error:
$ 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"
Report the problem to the author of freegames
. Downgrade to Python 3.9. Learn that you should never be so fast to upgrade to the latest and greatest versions.
This issue has been resolved
import collections.abc as collections
module 'collections' has no attribute 'Mapping', issue on MACOS for SDK installation
This way can solved my issue.
import collections
collections.Mapping = collections.abc.Mapping
collections.Sequence = collections.abc.Sequence
this is caused by the fact that you are using an old version od Django which is incompatible with python3.10.
You can either downgrade your python or upgrade your django (the latter can require a lot of changes on your code).
try this
sudo vim /usr/lib/python3.10/collections/__init__.py
search for line
from _weakref import proxy as _proxy
right below it, just paste
# my changes
#--------------
import collections
collections.Mapping = collections.abc.Mapping
collections.Sequence = collections.abc.Sequence
#--------------