ImportError:无法导入名称' create_connection'

时间:2017-11-17 06:01:41

标签: python-3.x

我正在使用Python 3.4和websocket-client 0.44。我正在尝试使用Python webscoket脚本从Bitfinex获取流数据 使用套接字。这是我写的剧本:

import json

from websocket import create_connection

ws = create_connection("wss://api.bitfinex.com/ws/2")
#ws.connect("wss://api2.bitfinex.com:3000/ws")
ws.send(json.dumps({
    "event": "subscribe",
    "channel": "book",
    "symbol": "tBTCUSD",
}))


while True:
    result = ws.recv()
    result = json.loads(result)
    xxx = result
    print(xxx)
    #print(result[1])

ws.close()

我得到的是,错误:

Traceback (most recent call last):
  File "D:/bitstamp/socket.py", line 3, in <module>
    from websocket import create_connection
  File "C:\Python34\lib\site-packages\websocket_client-0.44.0-py3.4.egg\websocket\__init__.py", line 23, in <module>
    from ._app import WebSocketApp
  File "C:\Python34\lib\site-packages\websocket_client-0.44.0-py3.4.egg\websocket\_app.py", line 35, in <module>
    from ._core import WebSocket, getdefaulttimeout
  File "C:\Python34\lib\site-packages\websocket_client-0.44.0-py3.4.egg\websocket\_core.py", line 24, in <module>
    import socket
  File "D:\bitstamp\socket.py", line 3, in <module>
    from websocket import create_connection
ImportError: cannot import name 'create_connection'

Python 3.4中是否存在问题,或者我这样做是错误的吗?

3 个答案:

答案 0 :(得分:4)

Python 3.4没有错。看来您可能缺少websocket-client软件包。

请通过如下所示在终端中运行命令来安装此软件包,这应该可以解决您的问题。

pip install websocket-client

答案 1 :(得分:3)

请勿调用您的脚本socket.py。 Python的标准库中已经存在socket,并且您与它存在冲突。您可以通过跟踪回溯来判断这是问题:它从您的脚本开始,下降到websocket,最终尝试导入socket,然后再次获取您的脚本。

答案 2 :(得分:0)

您应该首先安装websocket-client,或者在卸载websocket之后再安装websocket-client。