How to fix Python WebSocket TypeError: __init__() missing 3 required positional arguments: 'environ', 'socket', and 'rfile'

Problem:

You are trying to connect a WebSocket in Python:

import websocket
ws = websocket.WebSocket()

but you see an error message like

TypeError                                 Traceback (most recent call last)
<ipython-input-3-5108525d0b43> in <module>
      1 import websocket
----> 2 ws = websocket.WebSocket()
      3 ws.connect("ws://192.168.1.211/ws")
      4 while True:
      5     result = ws.recv()

TypeError: __init__() missing 3 required positional arguments: 'environ', 'socket', and 'rfile'

Solution

You have installed the wrong library ! You need to use websocket-client instead of websocket !

First, uninstall websocket:

pip uninstall websocket

Now install websocket-client:

pip install websocket-client

Now try again - your code should work now.