Python Integration: Difference between revisions

From PyMOLWiki
Jump to navigation Jump to search
(New page: ==Launching Python programs from PyMOL == Running a Python script from PyMOL, usually the command: <source lang="python"> run script.py </source> Is enough. Of course, the file script.py needs to be in ...)
 
m (python3)
 
(One intermediate revision by one other user not shown)
Line 23: Line 23:


==Launching PyMOL from Python programs==
==Launching PyMOL from Python programs==
Running PyMOL from a Python script requires two commands:
 
<source lang="python">
See [[Launching From a Script]].
import pymol
pymol.finish_launching()
</source>


==Using the PyMOL commandline==
==Using the PyMOL commandline==
Line 33: Line 30:
Are you aware that the PyMOL command line is also a Python command line? You can just use PyMOL interactively in that fashion.
Are you aware that the PyMOL command line is also a Python command line? You can just use PyMOL interactively in that fashion.
<source lang="python">
<source lang="python">
PyMOL>print 1+1
PyMOL>print(1+1)
2
2
PyMOL>from random import random
PyMOL>from random import random
PyMOL>print random()
PyMOL>print(random())
0.739460642143
0.739460642143
</source>


The only major difference is that the default namespace for PyMOL is "pymol" not "__main__"
The only major difference is that the default namespace for PyMOL is "pymol" not "__main__"


PyMOL>print __name__
<source lang="python">
PyMOL>print(__name__)
pymol
pymol
</source>
</source>

Latest revision as of 01:35, 12 February 2020

Launching Python programs from PyMOL

Running a Python script from PyMOL, usually the command:

run script.py

Is enough. Of course, the file script.py needs to be in the working directory. You can also launch Python scripts when starting PyMOL. Asynchronous means, that a new Python thread is started:

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

Launching PyMOL from Python programs

See Launching From a Script.

Using the PyMOL commandline

Are you aware that the PyMOL command line is also a Python command line? You can just use PyMOL interactively in that fashion.

PyMOL>print(1+1)
2
PyMOL>from random import random
PyMOL>print(random())
0.739460642143

The only major difference is that the default namespace for PyMOL is "pymol" not "__main__"

PyMOL>print(__name__)
pymol