好的,所以我在Windows 8计算机上,想使用paho-mqtt软件包。下载了官方的msi安装程序并安装了python 3,在此之前我不记得有任何python安装。
>python --version
Python 3.8.1
通过pip
>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获得了安装目录,该目录在那里并且包含py文件。
是否有调试命令可以帮助解决这种情况,以查看python实际在哪里寻找它想要加载的文件而不能这样做?
任何帮助将不胜感激。
修改
仅import paho
不返回错误。但import paho.mqtt
导致ModuleNotFoundError: No module named 'paho.mqtt'; 'paho' is not a package
因此,安装和卸载会有所不同,但仅针对import paho
而不是import paho.mqtt
或import paho.mqtt.client as mqtt
。对于以后的导入,是否存在安装或卸载paho-mqqt的错误消息。
答案 0 :(得分:4)
如果您将源文件命名为paho.py,则可能会隐藏paho包。
因此将paho.py重命名为paho2.py应该可以解决问题。
答案 1 :(得分:4)
Python导入系统在运行时将您的脚本C:\mqt\paho.py
用作模块 paho
,因此import paho
有效,而import paho.mqtt
无效因为paho.py
被Python视为模块而非包。
重命名您的脚本。并且请记住未来的经验:永远不要给脚本命名与现有模块或软件包相同的名称,尤其是标准库中的模块或软件包。例如,始终避免命名脚本email.py
或test.py
。
答案 2 :(得分:0)
当普通的pip
无法正常工作时,您必须提到Python的版本。
使用sudo pip3 install paho-mqtt