Hello Pymol Users/Developers,
I am developing a wxpython application for windows that is
essentially a fancy multiple sequence alignment viewer. I have linked
this to pymol. I would like to be able to launch multiple instances of
pymol with different molecules from a single parent process. =20
The current solution I am using is as follows: I execute pymol
as a separate asynchronous process and then redirect stdin, stdout, and
stderr. Pymol is launched with the external GUI disabled. Commands are
sent to pymol on stdin. This works reasonably well for sending commands
to multiple instances of pymol but there are two problems.
1: When pymol is closed using the X in the top right corner of the
opengl frame pymol freezes and is unrecoverable. Pymol will close clean
if I exit from the command prompt but not from the frame. This seems to
be an artifact of the way it is launched and does not occur when I
launch pymol with -ix directly from a command prompt rather then a
wxpython program. If there is a solution for this, all is well, it is a
bit hackish but it works.
2: This is not as much of a problem but pymol somehow manages to consume
the command window that launches the wxpython application. I find this
remarkably confusing, I am not an expert developer but I thought
launching as an asynchronous process would prevent that from occurring.
I'm a pymol newbie and am not sure if this is the best way to do
this. I have tried a few other approaches from mail lists.
1: Control through greg landrum's xmlrpc listener. This exhibits the
same exit issues if I launch pymol form the parent application.
2: Launching pymol on start up and communicating through a pymol cmd
object. This consumes the parent thread and I am unable to determine
how to launch multiple instances. Consumption of the parent thread
causes the main application to exit when pymol exits. This is a bit of
a show stopper.
Any advice/suggestions would be greatly appreciated. Thank you