PyQt5和Anaconda:ModuleNotFoundError:没有名为'PyQt5'的模块。

3

我创建了一个全新的、空白的环境,并在anaconda中激活它。 然后我执行了"conda install pyqt5",但是当我导入模块时,就像在

from PyQt5.QtWidgets import QApplication, QWidget

我的脚本抛出了一个错误:

File "C:\xyz\xyz.py", line 2, in <module>
from PyQt5.QtWidgets import QApplication, QWidget
ModuleNotFoundError: No module named 'PyQt5'

作为"conda list"显示pyqt5已安装,但"pip list"没有。我执行了"conda remove pyqt5"和"pip install pyqt5",现在它出现在两个"list"命令中,但我仍然收到相同的错误消息...注释掉所有内容并添加一个单行语句“print(“Hello World!”)”是有效的,因此我认为我的问题不是Anaconda与Python的关系引起的?!

Python在使用conda install安装的包中找不到模块的问题 - merv
@merv 谢谢你提供的链接,看起来那个人遇到了同样的问题,因为 "pip list" 没有显示 pyqt(而 "conda list" 显示了)。然而,解决方案是不使用 anaconda,我觉得这不是一个“解决方案”... - morph3us
@eyllanesc 对不起,我的措辞不好,我实际上不是以英语为母语的人,请原谅我。 :) 我已经相应地编辑了我的答案! - morph3us
@eyllanesc 我仍然收到相同的错误消息。我将要启动的脚本更改为简单的“print(“Hello World!”)”一行代码,并且通过anaconda启动它可以正常工作。所以我认为这不是问题? - morph3us
@eyllanesc 再次抱歉我的措辞不当,我把几件事情搞混了。我相信旧的 pyqt 版本是以小写形式导入的,但 PyQt5 不再是这样了(?)。由于这与我的问题无关,因为我们已经确定这不是问题所在,所以我从原来的问题中将其删除了。感谢您的耐心等待! :) - morph3us
1个回答

4
以下对我有用:
  • 使用pip install pyqt5安装pyqt5。
  • 然后在Python中使用from PyQt5.QtWidgets import QApplication, QWidget(注意大小写不同!)

更新:

使用虚拟环境时,您必须确保在同一个虚拟环境中执行所有操作。为此,请先激活您的环境,然后只使用python命令进行所有操作,并避免直接使用pypip命令。

以下是一些帮助您调试问题的步骤:

  • 首先激活您的虚拟环境。我没有使用anaconda的经验,但我假设它类似于venvvirtualenv(即只需调用相应的activate脚本),并且您知道如何执行此操作。
  • 然后:
    • 运行python -V检查您的Python版本。
    • 运行python -m pip -V检查PIP的版本。请注意,这也会打印pip模块的位置。此位置应该在您的虚拟环境中!
    • 运行python -m pip list查看安装的PIP软件包。PyQt5 应该在此列表中。如果没有,请运行python -m pip install pyqt5并重试。
    • 运行python -m pip show pyqt5显示有关pyqt5模块的信息。这也应该包括虚拟环境内部的位置。
    • 运行python -c "import PyQt5"检查是否可以导入PyQt5模块。这应该不会打印任何内容(没有ModuleNotFoundError)。
    • 使用python xyz.py运行您的脚本。请不要使用命令xyz.py,因为在这种情况下,Windows注册表将确定“打开操作”,这很可能会使用您最近安装的Python版本而不是来自虚拟环境的版本!

所以我执行了 "conda remove pyqt5",然后执行了 "pip install pyqt5"。 但是我仍然得到以下错误:Traceback (most recent call last): File "C:\shelf\shelf.py", line 2, in from PyQt5.QtWidgets import QApplication, QWidget ModuleNotFoundError: No module named 'PyQt5' - morph3us
@morph3us,也许这个答案可以帮到你? - wovano
谢谢提供链接,我只安装了一个Python版本,这已经通过“$ py -0p”确认。我的整个Python都可以工作,所以我认为这与PATH变量无关? 也许anaconda在内部混淆了,因为这是我的第二个环境?然而,切换回我的旧环境并使用仅在其中安装的软件包(例如tensorflow)可以正常工作。所以我认为这是一个pyqt特定的问题... - morph3us
@morph3us,使用虚拟环境会使事情变得更加复杂(尽管使用虚拟环境是一个好主意!)。我已经更新了这个答案,并添加了一些额外的信息。我真的希望这可以帮到你,因为我现在没有其他想法。我很乐意听取结果。 - wovano
@morph3us,我很高兴能帮到你 :-) 我已经更新了我的其他答案,加入了这些信息。正如你所看到的,在Windows中这是一个相当复杂的情况,所以我可以理解你一开始可能并不清楚。很好的想法,将这些信息更新到你的问题中,这可能会产生一些变化(提前给你点赞 ;p)。 - wovano
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接