【问题标题】:Python websocket: Import error, cannot import 'create_connection' in dockerPython websocket:导入错误,无法在docker中导入'create_connection'
【发布时间】:2020-12-15 20:47:25
【问题描述】:

所以我在我的程序中使用 websocket。在文件中,我从 websocket 导入 create_connection。

from websocket import create_connection

问题是,当我使用 requirements.txt 从我的 venv 运行它时,pip 安装从 websocket 和 websocket-client 所在的位置,我的程序运行良好。

但是当我做一个 docker 容器时,该 pip 从完全相同的 requirements.txt 文件安装并运行与导入完全相同的脚本,我得到 ImportError: cannot import name 'create_connection' from 'websocket'。

我做错了什么?我的 docker 容器中的其他所有内容都可以正常工作(我正在 requirements.txt 中进行其他安装,例如 pandas 和 numpy),当我在控制台而不是 docker 中运行程序时,程序运行良好。

【问题讨论】:

  • 你能发布你的Dockerfile吗?
  • 我设法通过添加单独的 RUN pip install websocket 和 RUN pip install websocket-client 来修复它,这很奇怪,因为我仍在为所有其他有效的依赖项执行 RUN pip install -r requirements.txt很好,但是对于 websocket,由于某种原因它不起作用。

标签: python docker websocket


【解决方案1】:

我设法通过在 dockerfile 中为 websocket 和 websocket-client 添加单独的 RUN pip install 来解决这个问题。我需要这样做很奇怪,因为两者都在 requirements.txt 但 idk 中。有效

FROM python:3.8

COPY requirements.txt .

RUN pip install numpy 

RUN wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz && \
  tar -xvzf ta-lib-0.4.0-src.tar.gz && \
  cd ta-lib/ && \
  ./configure --prefix=/usr && \
  make && \
  make install

RUN rm -R ta-lib ta-lib-0.4.0-src.tar.gz

RUN pip install TA-Lib

RUN pip install -r requirements.txt

RUN pip install websocket

RUN pip install websocket-client

COPY ./app ./app

CMD python app/startup.py

【讨论】:

    【解决方案2】:

    在我的 PC(无 docker)上系统范围安装 Python 时出现相同的错误消息。

    问题通过安装websocketswebsocket-client 自行解决 使用 root 用户,即

    sudo pip3 install websockets

    所以软件包安装到/usr/local/lib/python3.8/dist-packages 而不是/home/$USER/.local/lib/python3.8/site-packages

    由于 docker 对所有事情都使用 root 用户,我不确定这是否能解释您的问题。

    还要注意 websocket 数据包被称为websockets。单数名称websocket 将安装一些 gevent 库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多