On Saturday 23 October 2010, 02:54:40 Xavion wrote: > Arch Linux has recently switched its 'python' package to the Python > v3 branch. SIP and PyQt still require the 'python2' package, > probably because the unpatched D-Bus Python bindings currently won't > work with Python v3. > > I'm guessing that some other Linux distributions will continue using > Python v2 for a while yet. Due to this uncertainty, I'm thinking > that the Makefiles of my applications should detect whether PyQt is > attached to Python v2 or v3.
How about: python -c 'import sys, sipconfig; sys.stdout.write("%s\n" % (sipconfig._pkg_config['py_version'] >> 16))' but hold on a second. Phil, there's an issue in this area: $ python -c 'import sys, sipconfig; sys.stdout.write("%s\n" % (sipconfig._pkg_config['py_version'] >> 16))' Traceback (most recent call last): File "<string>", line 1, in <module> NameError: name 'py_version' is not defined $ python Python 2.6 (r26:66714, Mar 30 2010, 00:30:21) [GCC 4.3.2 [gcc-4_3-branch revision 141291]] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys, sipconfig; sys.stdout.write("%s\n" % >>> (sipconfig._pkg_config['py_version'] >> 16)) 2 $ pyqtver.py python: 2.6 sip: 4.11.2 qt4: 4.6.3 pyqt4: 4.8 > Doing so will save me from having to hard-code something like > "#!/usr/bin/env python2" into the main executable file, only to be > disappointed after finding out that some Linux distributions have > already built PyQt on Python v3. For a transition phase of a couple of years, I would do it the other way around. Your distribution should have created a python3 symlink, hence, if you code for python3, use #!/usr/bin/env python3, given it isn't compatible with python < 3, otherwise use #!/usr/bin/env python. > I realise that I could just search for the "/site-packages/PyQt4/" > directory, but I want a much cleaner solution that won't slow down > the installation processes. So, how should my Makefiles determine > this necessary information? You may find the attached script helpful. It was written with parsability in mind, but also needs to be called with python3 to check, if pyqt is available for that installation (too). See above. Pete
pyqtver.py
Description: application/python
_______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt