【问题标题】:"ImportError: cannot import name..." when trying to run Python script in Docker尝试在 Docker 中运行 Python 脚本时出现“ImportError:无法导入名称...”
【发布时间】:2020-12-09 20:50:17
【问题描述】:

我有一个 Python 脚本,我想在 Docker 容器中运行,但它因错误而停止:

 File "main.py", line 1, in <module>
   from pushover import init, Client
ImportError: cannot import name 'init' from 'pushover' (/usr/local/lib/python3.8/dist-packages/pushover/__init__.py)

在 PyCharm 中,脚本运行良好。 Dockerfile 如下所示:

RUN apt-get update -y && apt-get install git python3 python3-pip -y; \ 
   git clone https://(path to my script) ; \
   pip3 install pushover
WORKDIR "/FNotify/"
CMD  python3 main.py; 

我在脚本中的导入如下所示:

from pushover import init, Client
import os
from time import sleep

【问题讨论】:

  • That library's source 并不表示它有一个名为init 的函数。相同的设置是否适用于非 Docker 虚拟环境?
  • @DavidMaze 是的,在我使用 pyCharm 的 Windows 环境中,它可以完美运行。

标签: python python-3.x docker import pushover


【解决方案1】:

您混淆了wrong package 和correct package,所以接下来应该安装:

pip3 install python-pushover

结果:

# python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pushover import init
>>>

另外,python-pushover 网页提供的示例用法与您的相同:

from pushover import init, Client

init("<token>")
Client("<user-key>").send_message("Hello!", title="Hello")

【讨论】:

  • @HardwareFuture 如果它解决了您的问题,您可以接受这个答案。
猜你喜欢
  • 2016-02-24
  • 2021-09-18
  • 2020-09-10
  • 2013-03-09
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
  • 2013-02-22
相关资源
最近更新 更多