Plugin Manager: Difference between revisions

From PyMOLWiki
Jump to navigation Jump to search
(Created a page describing the Plugin Manager for PyMOL)
 
No edit summary
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Newer versions of PyMOL come with a '''Plugin Manager''', which can be used to load plugins such as the [https://github.com/Pymol-Scripts/Pymol-script-repo# PyMOL Script Repo].
Since version 1.5.0.5 PyMOL comes with a '''Plugin Manager''', which can be used to load plugins such as those in the [https://github.com/Pymol-Scripts/Pymol-script-repo# PyMOL Script Repo].<br>


=Manual Setup=
== Features ==
In the PyMOL menu naviagte to '''Plugins''' > '''Plugin Manager''' <br>
Here you can manually add directories or scripts that will be loaded upon startup.
 
 
=Scripted setup during PyMOL launching=
===Creating run_on_startup.py===
'''run_on_startup.py''' can easily be created using a text editor such as notepad.<br>
 
The '''run_on_startup.py''' is handled similar to pymolrc files and is executed every time PyMOL launches.<br>
An important distinction is that '''run_on_startup.py''' is executed before the pymolrc files and is purely written in python.<br>
The recommended location of '''run_on_startup.py''' is the PyMOL home directory (PYMOL_PATH, e.g. something like 'C:\Program Files \PyMOL\').<br>
An advantage is that should PyMOL be installed on a computer with several users, this will be run for all users, while the pymolrc files can be individual (e.g. in the USER directory).
 
<syntaxhighlight lang="python">
#this can be copy-pasted to create run_on_startup.py in the home directory
 
# Add paths to sys.path so PyMOL can find modules and scripts
import sys
import os
 
pymol_git = os.path.realpath(os.path.join(os.environ['PYMOL_PATH'], 'Pymol-script-repo'))
 
os.environ['PYMOL_GIT_MOD'] = os.path.join(pymol_git,'modules')
sys.path.append(pymol_git)
sys.path.append(os.environ['PYMOL_GIT_MOD'])
 
# Make setting changes to Plugin Manager
import pymol.plugins
 
#THIS IS WHERE THE PATH IS ADDED TO INITIALIZE PLUGINS USING THE PLUGIN MANAGER
pymol.plugins.set_startup_path([os.path.join(pymol_git, 'plugins'), os.path.join(sys.prefix, 'Lib', 'site-packages', 'pmg_tk', 'startup')])
 
pymol.plugins.preferences = {'instantsave': False, 'verbose': False}
pymol.plugins.autoload = {'apbs_tools': False}
pymol.plugins.preferences = {'instantsave': True, 'verbose': False}
 
 
# This can be used to trace if PyMOL executed the file correctly. Otherwise remove this part
print 'Loaded run_on_stratup.py'
</syntaxhighlight>
 
 
If the '''Pymol-script-repo''' is located somewhere else the first section of the file will be different.<br>
E.g. in the USER directory:
<syntaxhighlight lang="python">
# This would replace the first section in '''run_on_startup.py'''.
import sys
import os
 
pymol_git = os.path.abspath(os.path.join(os.path.expanduser('~'), 'Pymol-script-repo'))
 
os.environ['PYMOL_GIT_MOD'] = os.path.join(pymol_git,'modules')
sys.path.append(pymol_git)
sys.path.append(os.environ['PYMOL_GIT_MOD'])
</syntaxhighlight>
 
E.g. in any other path:
<syntaxhighlight lang="python">
# This would replace the first section in '''run_on_startup.py'''.
import sys
import os
 
pymol_git = os.path.realpath('D:\MY\RANDOM\PATH\TO\Pymol-script-repo') # Adjust this line
# Note the '\' instead of '/', beware Windows users!
 
os.environ['PYMOL_GIT_MOD'] = os.path.join(pymol_git,'modules')
sys.path.append(pymol_git)
sys.path.append(os.environ['PYMOL_GIT_MOD'])
</syntaxhighlight>


* Install/Uninstall plugins
* Disable plugins and load them on demand to optimize PyMOL's startup time
* Configure the plugin search path


===Appending additional paths to the Plugin Manager===
===Appending additional paths to the Plugin Manager===
Should your scripts be located in several alternative locations, it is possible to append additional directories to the '''Plugin Manager'''.<br>
Should your scripts be located in several alternative locations, it is possible to append additional directories to the '''Plugin Manager'''.<br>
In the example below, a directory called 'plugins_private', which is located in the PyMOL directory, is added to the Plugin Manger.<br>
Should the folder be somewhere else the example below can be adjusted as outlined above.<br>
<syntaxhighlight lang="python">
#copy paste into PyMOL's command line or into the pymolrc
python
import os
import sys
import pymol.plugins
PRIVATE_PATH=os.path.realpath(os.path.join(os.environ['PYMOL_PATH'], 'plugins_private'))
startupdirectories=list(pymol.plugins.get_startup_path(True))
if PRIVATE_PATH not in startupdirectories:
    startupdirectories.append(PRIVATE_PATH)
if PRIVATE_PATH not in sys.path:
    sys.path.append(PRIVATE_PATH)
pymol.plugins.set_startup_path(startupdirectories)
python end
</syntaxhighlight>
Note that the '''Plugin Manager''' supports loading entire folders with scripts ('modules').<br>
If you have such a folder, make sure it contains a file called '__init__.py', which can be empty.


: Plugin &gt; Plugin Manager &gt; Settings &gt; Add new directory...


=If you don't have a Plugin Manager=
== Screenshots ==
If you are running an older PyMOL without '''Plugin Manager''' you can either upgrade to the newest version or load plugins the traditional way. <br>
For detailed instructions see: [[Git install scripts]]<br>
Essentially, make sure that the folder is added to PyMOL's search paths.
<syntaxhighlight lang="python">
import sys
import os
pymol_git = os.path.realpath(os.path.join(os.environ['PYMOL_PATH'], 'Pymol-script-repo'))
sys.path.append(pymol_git)
</syntaxhighlight>
Import a plugin manually:
<syntaxhighlight lang="python">
# EXAMPLE
delete all
frag LYS
cgo_arrow name N, name O # will not work if 'cgo_arrow' is not loaded


import cgo_arrow # PyMOL will look for this file and load it
[[Image:plugin_manager_installed.png]]
cgo_arrow name N, name O # should work if it is loaded
[[Image:plugin_manager_install_new.png]]
</syntaxhighlight>
[[Image:plugin_manager_settings.png]]


=SEE ALSO=
== See Also ==
[[Git install scripts]]


* [[Pymol-script-repo]]


[[Category:Launching]]
[[Category:Launching]]
[[Category:Plugins]]

Latest revision as of 07:31, 13 November 2018

Since version 1.5.0.5 PyMOL comes with a Plugin Manager, which can be used to load plugins such as those in the PyMOL Script Repo.

Features

  • Install/Uninstall plugins
  • Disable plugins and load them on demand to optimize PyMOL's startup time
  • Configure the plugin search path

Appending additional paths to the Plugin Manager

Should your scripts be located in several alternative locations, it is possible to append additional directories to the Plugin Manager.

Plugin > Plugin Manager > Settings > Add new directory...

Screenshots

Plugin manager installed.png Plugin manager install new.png Plugin manager settings.png

See Also