This is a read-only mirror of pymolwiki.org
Difference between revisions of "Plugindirectory"
Line 67: | Line 67: | ||
= This plugin is being used in the Pymol-script-repo project = | = This plugin is being used in the Pymol-script-repo project = | ||
− | == | + | == Adding Pymol-script-repo to PyMOL search path == |
− | + | You now have to add the "Pymol-script-repo" directory to the PyMOL search path, and import folder "plugins" before use | |
+ | === For windows users === | ||
+ | # Open notepad | ||
+ | # Write (Remember forward slashes) | ||
+ | import sys | ||
+ | sys.path.append('C:/Users/YOURNAME/Documents/Pymol-script-repo') | ||
+ | import plugins | ||
+ | Save under: '''C:/Users/YOURNAME/pymolrc.pym''' (Set: "Save as type" to "All files") | ||
− | Write | + | === For Ubuntu/Mint users === |
− | + | gedit ~/.pymolrc | |
− | import | + | Write |
− | + | import sys | |
− | + | sys.path.append('/home/YOURNAME/Software/pymol/Pymol-script-repo') | |
+ | import plugins | ||
+ | Save and exit | ||
== Python Code == | == Python Code == |
Revision as of 16:08, 3 December 2011
This page describes how to set up a personal plugin directory. It supports single python files as well as directories which contain a __init__.py 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/__init__.py with the folling content:
'''
PyMOL personal plugin directory
Recommended location of this file: ~/.pymol/pymolplugins/__init__.py
'''
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/PMGApp.py
'''
# load global plugins
x__initializePlugins(self)
# 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)):
modules.add(filename)
elif name != '__init__':
modules.add(name)
for name in modules:
mod_name = pymolplugins.__name__ + '.' + name
try:
__import__(mod_name, level=0)
mod = sys.modules[mod_name]
if hasattr(mod,'__init_plugin__'):
mod.__init_plugin__(self)
elif hasattr(mod,'__init__'):
mod.__init__(self)
except:
print "Exception in plugin '%s' -- Traceback follows..."%name
traceback.print_exc()
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:
python
import sys, os
sys.path.append(os.path.expanduser('~/.pymol'))
import pymolplugins
python end
This plugin is being used in the Pymol-script-repo project
Adding Pymol-script-repo to PyMOL search path
You now have to add the "Pymol-script-repo" directory to the PyMOL search path, and import folder "plugins" before use
For windows users
- Open notepad
- Write (Remember forward slashes)
import sys sys.path.append('C:/Users/YOURNAME/Documents/Pymol-script-repo') import plugins
Save under: C:/Users/YOURNAME/pymolrc.pym (Set: "Save as type" to "All files")
For Ubuntu/Mint users
gedit ~/.pymolrc
Write
import sys sys.path.append('/home/YOURNAME/Software/pymol/Pymol-script-repo') import plugins
Save and exit
Python Code
This code has been put under version control. In the project, Pymol-script-repo.
For a color coded view:
https://github.com/Pymol-Scripts/Pymol-script-repo/blob/master/__init__.py