在Sierra:如何让Qt 5.8.0 / PyQt 5.7.1 / sip 4.19 / Python3.5安装并正常工作?

我在尝试将Qt 5.8.0 / PyQt 5.7.1 / sip 4.19 / Python3.5的组合安装到&组件时遇到了麻烦.在我的macOS 10.12.2(Sierra)上正常工作.

重现问题的步骤:

(我非常具体,如果有人想冒险尝试完成同样的事情)

>通过自制软件安装Python3.5(brew install python3.5).
>然后通过自制软件安装PyQt5不起作用,因为我的python代码抱怨它无法找到pyqt模块.我通过应用一些符号链接来修复它.然而,代码仍然错误地抛出QtGui.QApplication丢失等错误.我也发现多次抱怨macOS用户遇到了类似的问题,但我找不到任何真正的解决方案.所以,我删除了所有符号链接并运行brew uninstall pyqt5.
>然后我在GitHub上找到this gist,然后开始关注,所以我:
>从qt-project.org下载qt-opensource-mac-x64-clang-5.8.0.dmg
>如下所述,下载了SIP和PyQt5-gpl源代码.
>然后我解压缩了SIP& PyQt5 tar文件.然后我执行了命令:

python3.5 ~/Downloads/sip-4.19/configure.py -d /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages --arch x86_64

>到目前为止,这么好.还有,sudo make install& sudo干净,如要点所述,执行没有问题.
>现在,我到达了步骤nr.来自gist的13,它告诉我对〜/ Qt5.8.0 / 5.8 / clang_64 / mkspecs / qdevice.pri文件中列出的!host_build命令做一个小改动.但该文件根本没有提及任何!host_build评论,所以我自己添加了一个.
>然后,在我执行的要点的第15步:

python3.5 configure.py --destdir /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages --qmake ~/Qt5.8.0/5.8/clang_64/bin/qmake

>这给出了一个SDK路径错误,我通过运行sudo xcode-select -s /Applications/Xcode.app/Contents/Developer来解决问题,因为在堆栈上的this post上遇到类似问题的人.
>现在,上面在步骤10中提到的代码确实执行了,但它引发了一个错误:

Error: This version of PyQt5 and the commercial version of Qt have incompatible licenses

>所以,我在QT论坛上搜索并于a post到达.它帮助我通过对PyQt5的configure.py文件进行一些小的调整来解决错误(注释掉许可证检查).
>然后,我终于能够成功运行我在步骤10中提到的命令(从要点开始的第15步).
>然而,当我试图再次运行make时,一切似乎都很完美,直到它现在抛出这个错误,到目前为止,我还无法修复:

~/Downloads/PyQt5_gpl-5.7.1/QtCore/sipQtCoreQt.cpp:1093:62: error: no member named 'WindowCancelButtonHint' in namespace 'Qt'; did you mean
      'WindowCloseButtonHint'?
    {sipName_WindowCancelButtonHint, static_cast<int>( ::Qt::WindowCancelButtonHint), 419},
                                                       ~~~~~~^~~~~~~~~~~~~~~~~~~~~~


    WindowCloseButtonHint
../../../Qt5.8.0/5.8/clang_64/lib/QtCore.framework/Headers/qnamespace.h:300:9: note: 'WindowCloseButtonHint' declared here
        WindowCloseButtonHint = 0x

Error: This version of PyQt5 and the commercial version of Qt have incompatible licenses

000, ^ ~/Downloads/PyQt5_gpl-5.7.1/QtCore/sipQtCoreQt.cpp:1106:58: error: no member named 'WindowOkButtonHint' in namespace 'Qt' {sipName_WindowOkButtonHint, static_cast<int>( ::Qt::WindowOkButtonHint), 419}, ~~~~~~^ 2 errors generated. make[1]: *** [sipQtCoreQt.o] Error 1 make: *** [sub-QtCore-make_first-ordered] Error 2

有没有人能够帮助我?

解决方法:

我是为Homebrew做Qt5 5.8.0升级的人.这是一个已知的问题,一直存在,直到Riverbank升级他们的软件.我建议你在他们的邮件列表上联系他们.

更新:作为临时解决方案,我添加了一个qt@5.7公式,并更新了PyQt5公式以依赖它.请参阅以下拉取请求,我已合并:

https://github.com/Homebrew/homebrew-core/pull/9297

https://github.com/Homebrew/homebrew-core/pull/9308

上一篇:在Mac上查看和恢复丢失的隐藏文件


下一篇:macos – 错误!无法找到MySQL服务器PID文件!