Python Integration: Difference between revisions
Jump to navigation
Jump to search
m (python3) |
|||
Line 23: | Line 23: | ||
==Launching PyMOL from Python programs== | ==Launching PyMOL from Python programs== | ||
See [[Launching From a Script]]. | |||
==Using the PyMOL commandline== | ==Using the PyMOL commandline== | ||
Line 47: | 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
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