[PyKDE] Errors with Python Subinterpreters
Gerard Vermeulen
gvermeul at grenoble.cnrs.fr
Fri Oct 25 09:32:01 BST 2002
On Fri, Oct 25, 2002 at 12:28:27AM +0200, 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.
>
I would try to solve this by catching the RuntimeError like this:
try:
from qt import *
except RuntimeError:
pass
Another possibility is to check if qt has been imported by trying
to use one of its functions:
>>> try:
... qVersion()
... except NameError:
... from qt import *
...
>>>
It is not garanteed to work, though :-)
Hope, you are lucky.
Gerard
More information about the PyQt
mailing list