Package Details: python-pyqt4 4.12.3-3

Git Clone URL: https://aur.archlinux.org/pyqt4.git (read-only)
Package Base: pyqt4
Description: A set of Python 3.x bindings for the Qt toolkit
Upstream URL: http://www.riverbankcomputing.com/software/pyqt/intro
Licenses: GPL
Conflicts: pyqt
Provides: pyqt=4.12.3
Replaces: pyqt
Submitter: arojas
Maintainer: 4llan (buzo)
Last Packager: buzo
Votes: 16
Popularity: 2.007308
First Submitted: 2018-08-24 08:49
Last Updated: 2019-04-12 11:08

Required by (62)

Sources (1)

Latest Comments

1 2 3 4 Next › Last »

buzo commented on 2019-04-02 16:30

The build should be fixed now.

alexei commented on 2019-03-28 01:14

@DarkSun: use the latest python-sip-pyqt4 4.19.15, do not downgrade it.

There are two remaining problems with this python-pyqt4 package:

  1. This package PKGBUILD must be changed to python-sip-pyqt4 and python2-sip-pyqt4 instead of python-sip and python2-sip, because the latter do not build the necessary PyQt4 module, so if you do not have the former installed, you will get:

    AttributeError: 'module' object has no attribute 'QWidget'

@buzo, can you change the dependencies here?

  1. For Python 2, python2-sip-pyqt4 is out-of-date (4.19.13) so its PKGBUILD must be edited manually to update to 4.19.15. Really, python2-sip-pyqt4 should be deleted and python-sip-pyqt4 should be a merged package that builds for both python 2 and 3.

DarkSun commented on 2019-03-27 22:24

@alexei python-sip-pyqt4 is updated to 4.19.15, Is it still neccesary to change the python-sip-pyqt4's version to 4.19.14?

alexei commented on 2019-03-09 13:44

Did you read the comments before posting? There is a workaround there.

Castanea commented on 2019-03-09 09:17

Sorry for my post @alexei, its ok now.

Same as @JohnRobson

g++ -c -pipe -fno-exceptions -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wall -W -D_REENTRANT -fPIC -DSIP_PROTECTED_IS_PUBLIC -Dprotected=public -DQT_NO_DEBUG -DQT_PLUGIN -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4 -I. -I/usr/include/python3.7m -I../qpy/QtCore -I. -o sipQtCoreQObject.o sipQtCoreQObject.cpp
/tmp/yaourt-tmp-test/aur-python2-pyqt4/src/PyQt4_gpl_x11-4.12.3/QtCore/sipQtCoreQObject.cpp:2345:1: error: ne peut convertir « std::nullptr_t » en « int » dans l'initialisation
     SIP_NULLPTR,
 ^
make[1]: *** [Makefile:749: sipQtCoreQObject.o] Error 1
make[1] : on quitte le répertoire « /tmp/yaourt-tmp-test/aur-python2-pyqt4/src/PyQt4_gpl_x11-4.12.3/QtCore »
make: *** [Makefile:60: sub-QtCore-make_default-ordered] Error 2

mark commented on 2019-03-08 07:25

@alexei Thank you for the clear instructions, it installed okay!

JohnRobson commented on 2019-03-08 05:48

g++ -c -pipe -fno-exceptions -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wall -W -D_REENTRANT -fPIC -DSIP_PROTECTED_IS_PUBLIC -Dprotected=public -DQT_NO_DEBUG -DQT_PLUGIN -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4 -I. -I/usr/include/python3.7m -I../qpy/QtCore -I. -o sipQtCoreQObject.o sipQtCoreQObject.cpp
/tmp/yay/pyqt4/src/PyQt4_gpl_x11-4.12.3/QtCore/sipQtCoreQObject.cpp:2345:1: error: cannot convert ‘std::nullptr_t’ to ‘int’ in initialization
     SIP_NULLPTR,
 ^
distcc[1235] ERROR: compile sipQtCoreQObject.cpp on localhost failed
make[1]: *** [Makefile:749: sipQtCoreQObject.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/tmp/yay/pyqt4/src/PyQt4_gpl_x11-4.12.3/QtCore'
make: *** [Makefile:60: sub-QtCore-make_default-ordered] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
Error making: pyqt4 (pyqt4-common python2-pyqt4)

alexei commented on 2019-03-08 00:29

@mark: on line 14, change python-sip python2-sip dependencies to python-sip-pyqt4 python2-sip-pyqt4. EDIT: and remove the former packages if you have them installed.

The error you cite just tells you to install pyqt4-common from AUR, which is a dependency of this package. If you use yaourt (or similar) it fetches dependencies automatically, otherwise you have to install deps manually.

mark commented on 2019-03-07 19:38

I'm still having trouble installing this.

=>> Select packages to install
  1> pyqt4-common
  2> python-pyqt4
  3> python2-pyqt4

Install [1]: 3
[sudo] password for username: 
loading packages...
resolving dependencies...
warning: cannot resolve "pyqt4-common", a dependency of "python2-pyqt4"
:: The following package cannot be upgraded due to unresolvable dependencies:
      python2-pyqt4

I've added the temporary workaround after configure commands, but I didn't quite get where the rest of the changes should be made. Even though it should build but not work with just this hotfix?

alexei commented on 2019-02-18 19:33

As a temporary workaround, add this after both configure commands in the PKGBUILD:

find . -type f -name '*.cpp' -exec sed -i 's/{SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR}/{SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, 0}/g' {} \;

Btw, you also must change python-sip/python2-sip dependencies to python-sip-pyqt4/python2-sip-pyqt4, otherwise PyQt will build but the module won't work: import will fail with 'sip' not find, and if you import the default sip, you'll get errors like QtGui.QWidget no attrivute QWidget in QtGui.

Also, you must update python-sip-pyqt4/python2-sip-pyqt4 to 4.19.14 by bumping the version and URL in the PKGBUILD to https://www.riverbankcomputing.com/static/Downloads/sip/sip-4.19.14.tar.gz . Otherwise, 'from PyQt4 import QtGui' will fail with need API v12.6 but sip provides only v12.5.

UPDATE: Also, be careful with versions of sip and python-sip-pyqt packages, it's easy to end up with different versions if you're not careful, and that's probably not good. I ended up simply adding the python-sip-pyqt4 packages to the sip source package PKGBUILD, which already has the python-sip-pyqt5; and uninstalled all sip packages from the system before building and installing the package set from the modified sip PKGBUILD. That way, all sip packages are of the same version. This does not address the underlying issue, though that PyQt4 does not build with latest sip 4.19.14.

UPDATE2: reported to PyQt4: http://python.6.x6.nabble.com/PyQt4-compilation-error-with-sip-4-19-14-convert-std-nullptr-t-to-int-in-initialization-td5248504.html