RE: [PyMOL] How to run PyMol from within Python?
> So there is no way to run and control PyMol from within > another python program? If PYMOL_PATH, LD_LIBRARY_PATH, and TCL_LIBRARY are correctly defined, then you can launch PyMOL from an external Python program as shown in examples/devel/start_pymol.py. However, this is not recommended because the PyMOL launch sequence is not fixed. If you do use it, be prepared to deal with changes down the road. > The reason for asking is that we are working on a python platform to > run and evaluate protein-protein docking calculations. It would be a > nice feature to be able to call up interaction surfaces and > protein-protein clusters for display in PyMol and then interact with > them from within our program. > As things are now I'm forced to treat PyMol as I would treat any > molecular graphics program, that is write macros macros for it. This > is of course much less convenient and less flexible compared to > running PyMol from within our python code. > Has anyone been able to run and quit PyMol from within python without > killing the interpreter? Is it possible? How? The underlying source of the limitation here is that the GLUT and Tcl/Tk libraries which PyMOL uses do not support repeated set-up/take-down -- they are both static "global" systems which steal threads and never return. Thus, while PyMOL is not inherently limited in this fashion, these building blocks which it employs are. Eventually there will be versions of PyMOL which are both GLUT and TCL/Tk independent -- but not today. Instead, I recommend using some kind of inter-process communication along with object serialization to pass data from your program into PyMOL. Python makes this relatively easy, but you are looking at a little bit of development. Sorry the news isn't better! Warren
Re: [PyMOL] How to run PyMol from within Python?
Hi all, So there is no way to run and control PyMol from within another python program? The reason for asking is that we are working on a python platform to run and evaluate protein-protein docking calculations. It would be a nice feature to be able to call up interaction surfaces and protein-protein clusters for display in PyMol and then interact with them from within our program. As things are now I'm forced to treat PyMol as I would treat any molecular graphics program, that is write macros macros for it. This is of course much less convenient and less flexible compared to running PyMol from within our python code. Has anyone been able to run and quit PyMol from within python without killing the interpreter? Is it possible? How? Cheers, Johan > I'm having problems running PyMol from within another Python program. This is not the recommended way to run PyMOL and may lead to problems. You can run Python programs within PyMOL as follows: from the command-line: pymol example.py # synchronous, in PyMOL module pymol -r example.py # synchronous in __main__ module pymol -l example.py # asychronous in a new module You can also launch python programs from within PyMOL with the commands: run example.py# synchronous in pymol module run example.py,main # synchronous in __main__ module spawn example.py# asychronous in a new module spawn example.py,global # asychronous in the PyMOL module spawn example.py,main # asychronous in the __main__ module see: help launching help run help spawn > Following the examples in /pymol/examples/devel I have been able to > launch and controll PyMOL. The problem occur when I try to quit PyMol > (version. 0.82) however I do it I end up with a fault terminating my > Python interpreter. > > Under Redhat 7.1/Python 2.1 i get a segmentation fault and under > MacOS 10.1.5/Python 2.2.1 I get a Python bus error. I get the same > result both when quitting from the gui or within python with the > command cmd.quit() > > How can I quit PyMol properly? I know for a fact that the Mac take-down process is currently flawed, and frequently gives a bus error. Because it only happens after you quit the program, its a low priority issue... Not sure about Redhat. Warren
RE: [PyMOL] How to run PyMol from within Python?
> From: Johan Leckner [mailto:jo...@pasteur.fr] > > I'm having problems running PyMol from within another Python program. This is not the recommended way to run PyMOL and may lead to problems. You can run Python programs within PyMOL as follows: from the command-line: pymol example.py # synchronous, in PyMOL module pymol -r example.py # synchronous in __main__ module pymol -l example.py # asychronous in a new module You can also launch python programs from within PyMOL with the commands: run example.py# synchronous in pymol module run example.py,main # synchronous in __main__ module spawn example.py# asychronous in a new module spawn example.py,global # asychronous in the PyMOL module spawn example.py,main # asychronous in the __main__ module see: help launching help run help spawn > Following the examples in /pymol/examples/devel I have been able to > launch and controll PyMOL. The problem occur when I try to quit PyMol > (version. 0.82) however I do it I end up with a fault terminating my > Python interpreter. > > Under Redhat 7.1/Python 2.1 i get a segmentation fault and under > MacOS 10.1.5/Python 2.2.1 I get a Python bus error. I get the same > result both when quitting from the gui or within python with the > command cmd.quit() > > How can I quit PyMol properly? I know for a fact that the Mac take-down process is currently flawed, and frequently gives a bus error. Because it only happens after you quit the program, its a low priority issue... Not sure about Redhat. Warren