Hello dear coot-cracks,

Sorry for bothering you again :

I could generate the .coot.py file by copying the coot.py file from share/coot/python/ into my home folder and adding the mentioned code:

------------

def key_binding_func_1():
    from types import ListType
    active_atom = active_residue()
    if (not active_atom):
        add_status_bar_text("No active residue")
    else:
        imol = active_atom[0]
        chain_id = active_atom[1]
        res_no = active_atom[2]
        ins_code = active_atom[3]
        atom_name = active_atom[4]
        alt_conf = active_atom[5]
        centred_residue = active_atom[1:4]
        other_residues = residues_near_residue(imol, centred_residue, 5)
        all_residues = [centred_residue]
        if (type(other_residues) is ListType):
            all_residues += other_residues
        print "imol: %s residues: %s" %(imol, all_residues)
        refine_residues(imol, all_residues)
add_key_binding("Refine residues in a sphere", "R", lambda: key_binding_func_1())


-----------------------------------------------------------------

However, there is this error message on starting up coot:

Loading ~/.coot.py...
Running python script /home/szueger/.coot.py
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/szueger/.coot.py", line 25, in <module>
    _coot = swig_import_helper()
  File "/home/szueger/.coot.py", line 15, in swig_import_helper
fp, pathname, description = imp.find_module('_coot', [dirname(__file__)])
NameError: global name '__file__' is not defined


But this has nothing to do with the code snippet I copied at the end of .coot.py (right?) and I did not change anything else... ?? (I copied the coot.py file from share/coot/python/). Also the key binding is not displayed under extensions/settings/key_bindings.

This error message appears either under shared or under home environment. But not if I remove .coot.py.

Do I have to change something else in .coot.py?


Thanks a lot again!

Sara


PS: these are the first 25 lines from the .coot.py:

-------------------------------

from sys import version_info
if version_info >= (2,6,0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
fp, pathname, description = imp.find_module('_coot', [dirname(__file__)])
        except ImportError:
            import _coot
            return _coot
        if fp is not None:
            try:
                _mod = imp.load_module('_coot', fp, pathname, description)
            finally:
                fp.close()
                return _mod
    _coot = swig_import_helper()
    del swig_import_helper
else:
    import _coot
del version_info
try:
    _swig_property = property
except NameError:
    pass # Python < 2.2 doesn't have 'property'.

------------------------------------------------




On Mon, 11 Jan 2010 09:43:19 -0800
 Nathaniel Echols <[email protected]> wrote:
2010/1/11 Sara Züger <[email protected]>

Thanks Miguel,

but is there another way to do this sphere refinement? I'm working on a
shared computer and have no administrator rights and also no experience
with
python/file handling of coot.

Or else, if there is no other way, can somebody explain me exactly what I
have to do/type (like copying a coot.py file into a local folder and change
that, but how then to tell coot to use this file?)


Coot will automatically use ~/.coot.py if present - all you need to do is
copy-and-paste Miguel's code snippet. You don't need administrator rights,
since you're only modifying your home directory.

-Nat

Reply via email to