[PyKDE] Errors with Python Subinterpreters

Phil Thompson phil at river-bank.demon.co.uk
Fri Oct 25 10:13:01 BST 2002


On Thursday 24 October 2002 11:28 pm, Franz wrote:
> Hello,
>
> my name is Franz Schmid and I'm the developer ot Scribus, a
> DTP-Package for Linux based on the QT3 GUI.
>
> To extend the possibiltys of my Program I've included an embedded
> Python Interpreter. This works pretty well.
>
> Since Scribus uses QT, it seems that it's recommended to use PyQt
> for creating some script driven Dialogs.
>
> But... When I run a PyQt-Script the very first time it works perfectly,
> trying it to run a second time or running another script that contains
> import qt or from qt import * it fails with the following error message:
>
> Traceback (most recent call last):
>   File "<string>", line 4, in ?
>   File "/home/franz/PyQtTest.py", line 9, in ?
>     from qt import *
>   File "/usr/local/lib/python2.1/site-packages/qt.py", line 925, in ?
>     libqtc.sipRegisterClasses()
> RuntimeError: SIP - module "qt" implements QObject but it has already been
> implemented
>
> Scribus uses Py_NewInterpreter()  to create a new Python Interpreter
> for every Script that should be run, to ensure that every Script has a
> clean namespace.
>
> Avoiding Py_NewInterpreter() by using everytime the main Python Interpreter
> causes this error on the second run:
>     Fatal Python error: PyThreadState_Get: no current thread
>
> Could you tell me a way how to avoid these errors?

This may need changes to SIP to work properly - but I'm happy to try and get 
this working.

I'm about to disappear for a week or so, I'll look at it more when I get back. 
Feel free to look at it and suggest a patch.

Phil




More information about the PyQt mailing list