【问题标题】:Trouble installing PySide on Mac在 Mac 上安装 PySide 时遇到问题
【发布时间】:2018-03-18 06:38:28
【问题描述】:

我在安装 PySide 时遇到了很多麻烦。我按照本教程中的建议使用 brew install qt 安装了 Qt:pyside.readthedocs.io/en/latest/installing/macosx.html。

我的 Mac 已更新至 High Sierra 10.13.3。当我运行 pip install -U Pyside 时,我得到以下打印输出:

  Failed building wheel for Pyside
  Running setup.py clean for Pyside
Failed to build Pyside
Installing collected packages: Pyside
  Running setup.py install for Pyside ... error
    Complete output from command /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -u -c "import setuptools, tokenize;__file__='/private/var/folders/4x/bkrfh91103936h2x82l9x_480000gn/T/pip-build-HTn1Jd/Pyside/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/4x/bkrfh91103936h2x82l9x_480000gn/T/pip-nRGV6n-record/install-record.txt --single-version-externally-managed --compile:
    Removing /private/var/folders/4x/bkrfh91103936h2x82l9x_480000gn/T/pip-build-HTn1Jd/Pyside/pyside_package
    running install
    running build
    Python architecture is 64bit
    error: Failed to find qmake. Please specify the path to qmake with --qmake parameter.

命令

"/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -u -c "import setuptools, tokenize;__file__='/private/var/folders/4x/bkrfh91103936h2x82l9x_480000gn/T/pip-build-HTn1Jd/Pyside/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/4x/bkrfh91103936h2x82l9x_480000gn/T/pip-nRGV6n-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/4x/bkrfh91103936h2x82l9x_480000gn/T/pip-build-HTn1Jd/Pyside/

关于如何解决这个问题的任何想法?谢谢!

【问题讨论】:

  • 首先,您确定要为内置 Python 2.7 安装 PySide 吗?
  • 二、你安装Qt了吗?如果是这样,您是如何安装的?
  • 是的,我已经安装了 Qt。这是我遵循的教程:pyside.readthedocs.io/en/latest/installing/macosx.html
  • 不确定我是否要为内置安装 PySide... 抱歉,我对此了解不多。感谢您的帮助!
  • 我猜第一个问题是,你想使用 Python 2.7(此时已经 8 岁,不到 2 年就不再支持)还是 3.6?

标签: python pyside


【解决方案1】:

PySide 已经过时 4 年并且基本上已经死了,并且不适用于任何高于 4.8 的 Qt。但是您遵循的说明(可能也已过期 4 年)告诉您安装最新的 Qt,目前是 5.10。

要解决此问题,您需要显式安装 Qt 4.8。你也许可以用 Homebrew 做到这一点:

brew install qt@4.8

但我还没有测试过这是否有效。

此外,Homebrew 的 Qt 包现在默认安装为“仅桶”链接。编写您所遵循的旧教程时,情况可能并非如此。在这种情况下,您可能需要按照 brew install 的输出中给出的说明进行操作,如下所示:

If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/qt/bin:$PATH"' >> ~/.bash_profile

For compilers to find this software you may need to set:
    LDFLAGS:  -L/usr/local/opt/qt/lib
    CPPFLAGS: -I/usr/local/opt/qt/include
For pkg-config to find this software you may need to set:
    PKG_CONFIG_PATH: /usr/local/opt/qt/lib/pkgconfig

如果这一切听起来像一团糟——或者如果你只是不想永远停留在 Qt 4.8 上——那么你可能实际上并不想使用 PySide。有两种主要选择:

  • PySide2 是由 PySide 核心开发人员与官方 Qt 公司一起设计的,作为 PySide 的替代品,它适用于 Qt 5(可能还有更高版本)以及更新版本的 OS X(和其他平台)和 Python 3,以及修复了一些如果不进行重大更改就无法修复的问题。这还不是稳定的 1.0 状态,但它已经用于实际项目。 (我相信目标是在 Qt 完成后开始对其进行版本同步,因此第一个稳定版本可能是 5.11 或 5.12,而不是 1.0。)
  • PyQt 是与独立公司不同的库。它今天工作且稳定,但它没有与PySide 相同的许可条款,也没有来自 Qt 公司的直接支持。 (IIRC,您可以获得商业许可或 GPL 许可,但不能获得 LGPL——但不要相信我;请自行检查。)

(实际上有一个由 Christian Tismer 将 PySide 移植到 Qt5,但据我所知,他几年前放弃了它,转而领导 PySide2 项目,而旧版本未完成,所以我不会不用费心去寻找。)

当然,如果您正在学习 Qt4 和 PySide 的教程,如果您使用 Qt5 和 PySide2 或 PyQt,则需要用更新的教程替换这些教程。

【讨论】:

  • 感谢您提供的所有信息!我想我会尝试使用 PyQt!