通过 pip 安装包,但 ModuleNotFoundError

Installed package via pip, but ModuleNotFoundError

好的,所以我在 windows 机器上,想使用 paho-mqtt 包。下载了官方的Python3 installer msi文件,安装了python3,我不记得之前有没有安装过python。

>python --version
Python 3.8.1

接下来,通过 pip

安装 paho-mqtt
>pip install paho-mqtt
Collecting paho-mqtt
  Using cached https://files.pythonhosted.org/packages/59/11/.../paho-mqtt-1.5.0.tar.gz
Installing collected packages: paho-mqtt
    Running setup.py install for paho-mqtt ... done
Successfully installed paho-mqtt-1.5.0

通过 pip3 尝试了相同的命令,它说软件包已经安装。

但是当我 import paho.mqtt.client as mqtt 我得到以下错误

Traceback (most recent call last):
  File "C:\mqt\paho.py", line 2, in <module>
    import paho.mqtt.client as mqtt
  File "C:\mqt\paho.py", line 2, in <module>
    import paho.mqtt.client as mqtt
ModuleNotFoundError: No module named 'paho.mqtt'; 'paho' is not a package

我已经完成了在线提供的所有解决方案,但没有机会。

还使用 获得了安装目录 paho 目录在那里并且包含 py 文件。

是否有任何调试命令可以帮助解决这种情况,看看 python 实际在哪里寻找它想要加载但不能加载的文件?

如有任何帮助,我们将不胜感激。

编辑

干脆import pahoreturns没有错误。但是 import paho.mqtt 导致

ModuleNotFoundError: No module named 'paho.mqtt'; 'paho' is not a package

所以安装和卸载会有所不同,但仅针对 import paho 而不是 import paho.mqttimport paho.mqtt.client as mqtt。对于以后的导入,无论我安装还是卸载 paho-mqqt,都会出现错误消息。

当您 运行 pip 时,您可能不会调用相同的 python

您可以通过 运行ning:

保证您在正确的 Python 3.8.1 实例中 运行ning pip

python -m pip install paho-mqtt

这对你有帮助吗?

如果您将源文件命名为 paho.py,它可能会隐藏 paho 包。

所以将 paho.py 重命名为 paho2.py 应该可以解决问题。

您的脚本 C:\mqt\paho.py 当 运行 被 Python 导入系统用作 模块 paho 所以 import paho 有效,但 import paho.mqtt 无效,因为 paho.py 被 Python 视为模块,而不是包。

重命名您的脚本。并且请记住未来的经验:永远不要给您的脚本起与现有模块或包相同的名称,尤其是标准库中的模块或包。例如,始终避免将脚本命名为 email.pytest.py.

你必须提到 Python 的版本,当正常 pip 不起作用时。

使用sudo pip3 install paho-mqtt

安装