繁体   English   中英

通过 pip 安装包,但 ModuleNotFoundError

[英]Installed package via pip, but ModuleNotFoundError

好的,所以我在 Windows 机器上,想使用paho-mqtt包。 下载了官方的Python 3安装程序msi文件,并安装了python 3,我不记得在此之前安装过任何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

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

还使用https://stackoverflow.com/a/49028561/2543240获得了安装目录, paho目录在那里并包含 py 文件。

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

任何帮助将不胜感激。

编辑

只需import paho返回任何错误。 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,都会出现错误消息。

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

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

您的脚本C:\\mqt\\paho.py在运行时被 Python 导入系统用作模块paho因此import paho可以工作,但import paho.mqtt不起作用,因为paho.py被 Python 视为模块,而不是包.

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

运行pip时,您可能不会调用同一个python

您可以通过运行以下命令来保证您在正确的 Python 3.8.1 实例中运行 pip:

python -m pip install paho-mqtt

这对你有帮助吗?

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

使用sudo pip3 install paho-mqtt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM