导入错误:没有名为PyQt4的模块。

27

我使用Homebrew安装了PyQt4。但是当我在Python解释器中导入PyQt4时,它显示“没有名为PyQt4的模块”。有人可以帮助我吗?


1
你除了苹果自带的Python版本,还安装了其他的Python版本吗?如果有,那么它们中的哪一个会在你只输入python命令时运行?(通常情况下,Homebrew上的PyQt4和类似的软件包只能与苹果自带的Python或Homebrew构建的Python一起使用,而不能与Python.org、Enthought或ActiveState Python等其他版本一起使用。此外,如果你安装了两个不同的Python 2.7版本,很容易将某些内容安装到一个site-packages中,然后尝试从另一个Python版本中使用它,甚至没有意识到你正在做错任何事情。) - abarnert
我认为这个链接https://dev59.com/l3I-5IYBdhLWcg3wN1lD会对你有所帮助。我自己尝试过,它是有效的。 - aijogja
5个回答

23

在执行brew install pyqt之后,您可以执行brew test pyqt以使用您所拥有的Python PATH来执行测试(显示Qt窗口)。

对于非brewed Python,您需要设置PYTHONPATH,具体方法请参考brew info pyqt

有时需要打开一个新的shell或者tap才能使用新构建的二进制文件。

我经常通过从python内部打印sys.path来检查这些问题:python -c "import sys; print(sys.path)"$(brew --prefix)/lib/pythonX.Y/site-packages必须在sys.path中才能导入相关内容。如前所述,对于构建的Python,这是默认设置的,但对于任何其他Python,都必须设置PYTHONPATH


2
谢谢。运行“brew info pyqt”后,它会给出你需要设置路径的命令。 - BostonGeorge

14

你需要检查你正在使用哪个 Python 版本。我遇到过同样的问题,因为我使用的 Python 版本与 brew 使用的版本不同。在命令行中执行以下步骤:

  1. which python
    输出:/usr/bin/python
  2. which brew
    输出:/usr/local/bin/brew     // 所以它们不同
  3. cd /usr/local/lib/python2.7/site-packages
  4. ls   //你会看到 PyQt4 和 sip 在这里
  5. 现在你需要将 usr/local/lib/python2.7/site-packages 添加到你的 Python 路径中。
  6. open ~/.bash_profile   //这将在编辑器中打开你的 bash_profile 文件
  7. 'export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH' 添加到你的 bash 文件中并保存
  8. 关闭你的终端并重新启动它以重新加载 shell
  9. python
  10. import PyQt4    // 现在没问题了

11
如果您正在使用Anaconda管理系统上的Python,可以使用以下命令安装PyQt4:$ conda install pyqt=4。如果想要安装最新版本,则省略=4。此答案来自如何在Anaconda中安装PyQt4?

5
我在自己的程序中安装了python3-pyqt4,解决了相同的问题。虽然我没有使用Python 3,但它仍然有帮助。

4
很可能您正在使用 /usr/bin(苹果版本)的 python 可执行文件,而不是 /usr/local/bin(Brew 版本)。
您可以:
a)检查 PATH 变量
或者
b)运行 `brew doctor`
或者
c)运行 `which python` 来检查是否是这种情况。

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