From PyMOLWiki
Revision as of 12:03, 3 December 2011 by Tlinnet (talk | contribs) (Example of use)
Jump to: navigation, search

This page describes how to set up a personal plugin directory. It supports single python files as well as directories which contain a file.

1) Create a directory $HOME/.pymol/pymolplugins, this will be your personal plugin directory. Copy plugins here instead of using the "Plugin > Manage Plugins > Install..." menu.

2) Create a file $HOME/.pymol/pymolplugins/ with the folling content:

PyMOL personal plugin directory
Recommended location of this file: ~/.pymol/pymolplugins/

import os, sys, traceback

# import pymolplugins (allow different name)
pymolplugins = sys.modules[__name__]

import pmg_tk.PMGApp
x__initializePlugins = pmg_tk.PMGApp.initializePlugins

def initializePlugins(self):
    Overloaded version of pmg_tk.PMGApp.initializePlugins
    See pmg_tk/
    # load global plugins

    # load user plugins
    modules = set()
    for path in pymolplugins.__path__:
        for filename in os.listdir(path):
            name, _, ext = filename.partition('.')
            if ext not in ['py', 'pyc', 'pyo']:
                if os.path.isdir(os.path.join(path, filename)):
            elif name != '__init__':
    for name in modules:
        mod_name = pymolplugins.__name__ + '.' + name
            __import__(mod_name, level=0)
            mod = sys.modules[mod_name]
            if hasattr(mod,'__init_plugin__'):
            elif hasattr(mod,'__init__'):
            print "Exception in plugin '%s' -- Traceback follows..."%name
            print "Error: unable to initialize plugin '%s'."%name

# overload method
pmg_tk.PMGApp.initializePlugins = initializePlugins

3) We need to import pymolplugins before the GUI launches, so insert into your $HOME/.pymolrc file:

import sys, os
import pymolplugins
python end

= This script is used in

This plugin is being used in the Pymol-script-repo project

Example of use

If you have Pymol-script-repo added to your path, you don't have to do anything. See here how to do this.

Then in PyMOL write

import plugins

Python Code

This code has been put under version control. In the project, Pymol-script-repo.

For a color coded view: