代码之家  ›  专栏  ›  技术社区  ›  ptvty

已通过pip安装包,但ModuleNotFoundError

  •  0
  • ptvty  · 技术社区  · 5 年前

    好的,我在一台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

    所以安装和卸载会有一些不同,但是 进口泛美卫生组织 导入paho.mqtt 将paho.mqtt.client导入为mqtt . 对于后面的导入,无论我安装还是卸载paho mqqt,都会显示错误消息。

    3 回复  |  直到 5 年前
        1
  •  2
  •   Philippe    5 年前

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

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

        2
  •  2
  •   phd    5 年前

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

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

        3
  •  0
  •   Clint Herron    5 年前

    你可能不会打同样的电话 python 当你跑的时候 pip .

    通过运行以下命令,可以确保在正确的Python3.8.1实例中运行pip:

    python -m pip install paho-mqtt

    这对你有帮助吗?