PyQt5 和 Anaconda:ModuleNotFoundError:没有名为“PyQt5”的模块

Posted

技术标签:

【中文标题】PyQt5 和 Anaconda:ModuleNotFoundError:没有名为“PyQt5”的模块【英文标题】:PyQt5 and Anaconda: ModuleNotFoundError: No module named '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 的关系?!

【问题讨论】:

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

以上是关于PyQt5 和 Anaconda:ModuleNotFoundError:没有名为“PyQt5”的模块的主要内容,如果未能解决你的问题,请参考以下文章

PyQT5 Anaconda 安装 - 未考虑软件包

Mac OS X Mavericks 上 PyQt5、Python3 和 Anaconda3 的问题

PyCharm+Anaconda配置OpenCV4.4和PyQt5

完美配置Python3.5+Anaconda+PyQt5,实现UI和其他模块的结合

pyqt 与 Anaconda 一起安装时找不到 PyQt5.QtWidgets 模块

anaconda + pyqt5 + pycharm 安装,测试