0

With a python file that is just:

from flask_socketio import SocketIO

I get the error:

> python .\app.py
Traceback (most recent call last):
  File "C:\{...}\server\app.py", line 127, in <module>
    from flask_socketio import SocketIO
  File "C:\{...}\Python310\lib\site-packages\flask_socketio\__init__.py", line 9, in <module>
    from socketio import socketio_manage  # noqa: F401
  File "C:\{...}\Python310\lib\site-packages\socketio\__init__.py", line 9, in <module>
    from .zmq_manager import ZmqManager
  File "C:\{...}\Python310\lib\site-packages\socketio\zmq_manager.py", line 5, in <module>
    import eventlet.green.zmq as zmq
  File "C:\{...}\Python310\lib\site-packages\eventlet\__init__.py", line 17, in <module>
    from eventlet import convenience
  File "C:\{...}\Python310\lib\site-packages\eventlet\convenience.py", line 7, in <module>
    from eventlet.green import socket
  File "C:\{...}\Python310\lib\site-packages\eventlet\green\socket.py", line 21, in <module>
    from eventlet.support import greendns
  File "C:\{...}\Python310\lib\site-packages\eventlet\support\greendns.py", line 79, in <module>
    setattr(dns, pkg, import_patched('dns.' + pkg))
  File "C:\{...}\Python310\lib\site-packages\eventlet\support\greendns.py", line 61, in import_patched
    return patcher.import_patched(module_name, **modules)
  File "C:\{...}\Python310\lib\site-packages\eventlet\patcher.py", line 132, in import_patched
    return inject(
  File "C:\{...}\Python310\lib\site-packages\eventlet\patcher.py", line 109, in inject
    module = __import__(module_name, {}, {}, module_name.split('.')[:-1])
  File "C:\{...}\Python310\lib\site-packages\dns\namedict.py", line 35, in <module>
    class NameDict(collections.MutableMapping):
AttributeError: module 'collections' has no attribute 'MutableMapping'

I saw in other threads that collections.MutableMapping has changed to collections.abc.MutableMapping in python >=3.1. I have tried the following solutions to no avail:

  1. Upgrade dependent packages:
pip install --upgrade pip
pip install --upgrade wheel
pip install --upgrade setuptools
pip install --upgrade requests
  1. Reinstall flask-socketio
pip install flask-socketio

I tried to reinstall the eventlet dependency with upgrade:

pip install --upgrade eventlet
Requirement already satisfied: eventlet in c:\...\python\python310\lib\site-packages (0.33.3)
Requirement already satisfied: greenlet>=0.3 in c:\...\python\python310\lib\site-packages (from eventlet) (2.0.2)
Requirement already satisfied: dnspython>=1.15.0 in c:\...\python\python310\lib\site-packages (from eventlet) (1.16.0)
Requirement already satisfied: six>=1.10.0 in c:\...\python\python310\lib\site-packages (from eventlet) (1.16.0)

None of these options work. How should I fix this error?

0

1 Answer 1

1

The problem is with dnspython the latest version of dnspython does use collections.abc.MutableMapping, so you need to upgrade it

pip install --upgrade dnspython

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.