[PyQt] Moving PyQt programs to Python 3

Algis Kabaila akabaila at pcug.org.au
Fri Jul 15 19:12:30 BST 2011


On Sat, 16 Jul 2011 12:16:13 AM Baz Walter wrote:
> On 15/07/11 07:48, Algis Kabaila wrote:
> > Currently reputable distros such as ubuntu do not package binaries of
> > PyQt with Python3.  There are other "unsupported binaries" in some ppa's
> > (Personal Packaging Archives)..  The ones that I looked at do not bother
> > to tell me what version of Python they are bound to - I assume it is
> > 2.x.
> > 
> > Also, when I do ask "how do I find out what Python version this PyQt
> > binary is bound to", the real question is "how does someone satisfy a
> > helper on this list that the PyQt binary she/he is using is bound to
> > Python 3.x".  How else hers/his questions can be answered without
> > suspicion of mismatch of binaries for PyQt and Python version being seen
> > as the probable reason why "her/his" code works on helpers PC and not
> > his/hers?
> 
> if a user can successfully import a pyqt module for a given python
> major/minor version, then there will be no "mismatch".
> 
> so a simple test would be to run a python interactive session and try
> something like: 'from PyQt4 import QtCore'. if there is a "mismatch", an
> ImportError will occur. (note that 'import PyQt4' would not be a good
> test, because that will just import PyQt4/__init__.py, which does nothing).
> 
> here's what happens on my system when i try to import the *wrong* pyqt:
> 
> Python 3.2 (r32:88445, Apr 15 2011, 11:20:08)
> [GCC 4.5.2 20110127 (prerelease)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> 
>  >>> os.chdir('/usr/lib/python2.7/site-packages')
>  >>> from PyQt4 import QtCore
> 
> Traceback (most recent call last):
>    File "<stdin>", line 1, in <module>
> ImportError: PyQt4/QtCore.so: undefined symbol: PyInt_Type
> 
> 
> Python 2.7.2 (default, Jun 29 2011, 11:17:09)
> [GCC 4.6.1] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> 
>  >>> os.chdir('/usr/lib/python3.2/site-packages')
>  >>> from PyQt4 import QtCore
> 
> Traceback (most recent call last):
>    File "<stdin>", line 1, in <module>
> ImportError: PyQt4/QtCore.so: undefined symbol:
> PyUnicodeUCS4_CompareWithASCIIString
> 
> 
> Python 2.6.5 (r265:79063, Jul 15 2011, 14:43:13)
> [GCC 4.6.1] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> 
>  >>> os.chdir('/usr/lib/python2.7/site-packages')
>  >>> from PyQt4 import QtCore
> 
> Traceback (most recent call last):
>    File "<stdin>", line 1, in <module>
> ImportError: PyQt4/QtCore.so: undefined symbol: PyCapsule_Type

Baz, that is the simple brilliantly explained reason to stop worrying about 
the mismatch - thanks a ton!

OldAl.


More information about the PyQt mailing list