【问题标题】:PyQt5 and Anaconda: ModuleNotFoundError: No module named 'PyQt5'PyQt5 和 Anaconda:ModuleNotFoundError:没有名为“PyQt5”的模块
【发布时间】:2019-06-04 21:37:51
【问题描述】:

我在 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 的关系?!

【问题讨论】:

  • @eyllanesc,驼色版和小版,很遗憾都不起作用。
  • @merv 谢谢你的链接,看来那个人也有同样的问题,因为“pip list”没有显示 pyqt(当“conda list”显示时)。但是,解决方案是不使用 anaconda,我觉得这不是“解决方案”...
  • @eyllanesc 我很抱歉我的措辞不好,我实际上不是以英语为母语的人,请原谅我。 :) 我相应地编辑了我的答案!
  • @eyllanesc 我仍然收到相同的错误消息。我将我开始的脚本更改为一个简单的“print(”Hello World!“)”单行,并且通过 anaconda 开始工作。所以我相信这不是问题?

标签: python python-3.x pyqt anaconda pyqt5


【解决方案1】:

以下内容对我有用:

  • 使用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(最近一次调用最后一次):文件“C:\shelf\shelf.py”,第 2 行, from PyQt5.QtWidgets import QApplication, QWidget ModuleNotFoundError: No module named 'PyQt5'
  • @morph3us,也许this answer可以帮助你?
  • 感谢您的链接,不过,我只安装了一个 Python 版本,由“$ py -0p”确认。我的 Python 作为一个整体可以工作,所以我相信它与 PATH 变量无关?也许 anaconda 在内部会感到困惑,因为这是我的第二个环境?但是,切换回我的旧环境并使用仅安装在其中的软件包(例如 tensorflow)是可行的。所以我认为它是一个 pyqt 特定的问题......
  • @morph3us,使用虚拟环境会使故事更加复杂(尽管使用虚拟环境是个好主意!)。我已经用一些额外的信息更新了这个答案。我真的希望这会有所帮助,因为此时我没有任何其他想法。我很高兴听到结果。
  • 非常感谢您的帮助!相应的命令是“conda activate env”。 =>python -V: Python 3.5.6 :: Anaconda, Inc. =>-m pip -V: pip 10.0.1 from C:\Users\morph3us\Miniconda3\envs\myenvname\lib\site-packages\pip ( python 3.5) => - pip list: PyQt5 5.12.2 => -m pip show pyqt5: Location: c:\users\morph3us\miniconda3\envs\myenvname\lib\site-packages =>-c "import PyQt5":不会抛出任何错误,所以一切看起来都井井有条。尽管如此,之后直接运行的脚本包含一行(“import PyQt5”)会抛出“ModuleNotFoundError: No module named 'PyQt5'”
猜你喜欢
  • 1970-01-01
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 2020-07-26
  • 2018-08-11
  • 1970-01-01
相关资源
最近更新 更多