user2501169
user2501169

Reputation: 419

AttributeError: 'module' object has no attribute 'WebSocketApp'

I'm trying to connect to an API with python, using WebSocketApp, and I cannot seem to do it. No matter what I try, I keep getting this error:

AttributeError: 'module' object has no attribute 'WebSocketApp'

Here is the simple code I am using

import websocket
import json

def on_open(ws):
    json_data = json.dumps({'data':'value'})
    ws.send(json_data)

def on_message(ws, message):
    print('data update: %s' % message)

if __name__ == "__main__":
    apiUrl = "appurl"
    ws = websocket.WebSocketApp(apiUrl, on_message = on_message, on_open = on_open)
    ws.run_forever()

Any help will be greatly appreciated, all the solutions I have found online have not worked for me.

Upvotes: 28

Views: 52459

Answers (5)

Cristian Blanco
Cristian Blanco

Reputation: 1

The problem is that you possibly installed both websocket and websocket-client. Remove websocket and just let websocket-client

Upvotes: 0

mikeardy
mikeardy

Reputation: 37

The issue can be generated because the version. Version v1.3 and above does me the same problem but installing v1.2.3 the issue disappeared...

Upvotes: 0

Amirkhm
Amirkhm

Reputation: 1096

In this case, You should uninstall the possible inconsistent previous versions and install websocket-client again:

pip uninstall websocket-client
pip uninstall websocket

an then install a new version:

pip install websocket-client

Upvotes: 35

Billy
Billy

Reputation: 5609

It looks like you're trying to use features of the websocket-client package and not just the websocket package. Pip-install websocket-client from the command line (or install it using whatever other package manager you have), then try running your code again.

pip install websocket-client

Upvotes: 37

falsetru
falsetru

Reputation: 369074

Make sure that you didn't name your file as websocket.py; Otherwise, it will prevent import of the desired third-party module websocket; because your module is searched first according to sys.path module search path.

Rename your module to other name, and make sure to clean websocket.pyc if there it is.

Upvotes: 26

Related Questions