Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 524
user2501169 Avatar asked Feb 09 '17 16:02

user2501169


3 Answers

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
like image 176
Billy Avatar answered Nov 13 '22 10:11

Billy


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.

like image 41
falsetru Avatar answered Nov 13 '22 10:11

falsetru


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
like image 20
Amirkhm Avatar answered Nov 13 '22 08:11

Amirkhm