Thanks ! setting the following worked: MYEBDIR=$HOME/easybuild/my_easyblocks EB_MNS_DIR=$HOME/easybuild/easybuild_overrides PYTHONPATH=/usr/lib/python2.6/site-packages/:$EB_MNS_DIR:$MYEBDIR
Since easybuild is installed by root , $PYTHONPATH was never set (as far as I could tell). - Trey ============================= Trey Dockendorf Systems Analyst I Texas A&M University Academy for Advanced Telecommunications and Learning Technologies Phone: (979)458-2396 Email: [email protected] Jabber: [email protected] ----- Original Message ----- > From: "Kenneth Hoste" <[email protected]> > To: [email protected] > Sent: Tuesday, September 2, 2014 2:27:21 AM > Subject: Re: [easybuild] Getting started with EB - integrating into existing > Lmod environment > > Hi Trey, > > On 02/09/14 01:24, Trey Dockendorf wrote: > >> Yes, you can use a custom module naming scheme, which would > >> probably > >> derive from the existing HierarchicalMNS. > >> > >> Documentation for that is available at > >> https://github.com/hpcugent/easybuild/wiki/Using-a-custom-module-naming-scheme, > >> but (still) needs to be updated w.r.t. the extended support for > >> hierarchical schemes. > >> > > Initial attempts failing. > > > > $ ls -R /home/treydock/easybuild/easybuild_overrides/ > > /home/treydock/easybuild/easybuild_overrides/: > > easybuild > > > > /home/treydock/easybuild/easybuild_overrides/easybuild: > > __init__.py __init__.pyc tools > > > > /home/treydock/easybuild/easybuild_overrides/easybuild/tools: > > __init__.py __init__.pyc module_naming_scheme > > > > /home/treydock/easybuild/easybuild_overrides/easybuild/tools/module_naming_scheme: > > __init__.py __init__.pyc local_module_naming_scheme.py > > local_module_naming_scheme.pyc > > > > $ cat > > /home/treydock/easybuild/easybuild_overrides/easybuild/tools/module_naming_scheme/local_module_naming_scheme.py > > import os > > from easybuild.tools.module_naming_scheme import HierarchicalMNS > > > > class LocalModuleNamingScheme(HierarchicalMNS): > > """Class implementing local module naming scheme.""" > > > > def det_short_module_name(self, ec): > > """ > > Determine short module name, i.e. the name under which > > modules will be exposed to users. > > Examples: GCC/4.8.3, OpenMPI/1.6.5, OpenBLAS/0.2.9, HPL/2.1, > > Python/2.7.5 > > """ > > return os.path.join(ec['name'].lower(), ec['version'] + > > ec['versionsuffix']) > > > > $ MYEBDIR=$HOME/easybuild/my_easyblocks > > $ EB_MNS_DIR=$HOME/easybuild/easybuild_overrides > > $ export PYTHONPATH=$PYTHONPATH:$MYEBDIR:$EB_MNS_DIR > > $ echo $PYTHONPATH > > :/home/treydock/easybuild/my_easyblocks:/home/treydock/easybuild/easybuild_overrides > > You need to make sure the framework is in your Python search patch > too, > and it should be in there first (before your easybuild_overrides > dir). > > Also, make sure *all* the __init__.py files contain the extend_path > line > (maybe that by itself it enough to fix your problem). > > > > > $ eb --avail-module-naming-schemes > > Traceback (most recent call last): > > File "/usr/lib/python2.6/site-packages/easybuild/main.py", line > > 52, in <module> > > import easybuild.tools.options as eboptions > > File > > "/usr/lib/python2.6/site-packages/easybuild/tools/options.py", > > line 41, in <module> > > from easybuild.framework.easyblock import EasyBlock > > File > > "/usr/lib/python2.6/site-packages/easybuild/framework/easyblock.py", > > line 52, in <module> > > from easybuild.framework.easyconfig.easyconfig import > > (EasyConfig, ActiveMNS, ITERATE_OPTIONS, > > File > > > > "/usr/lib/python2.6/site-packages/easybuild/framework/easyconfig/__init__.py", > > line 35, in <module> > > from easybuild.framework.easyconfig.easyconfig import > > EasyConfig > > File > > > > "/usr/lib/python2.6/site-packages/easybuild/framework/easyconfig/easyconfig.py", > > line 50, in <module> > > from easybuild.tools.module_naming_scheme import > > DEVEL_MODULE_SUFFIX > > ImportError: cannot import name DEVEL_MODULE_SUFFIX > > I think this signals that the __init__.pyt in > easybuild_overrides/easybuild/tools/module_naming_scheme doesn't > contain > an extend_path? > Either that, or the path /usr/lib/python2.6/site-packages/ isn't > first > in your Python search path. > > It should be though, since the DEVEL_MODULE_SUFFIX is provided by the > __init__.py in > /usr/lib/python2.6/site-packages/easybuild/tools/module_naming_scheme. > > > regards, > > Kenneth > > > >> EasyBuild takes into account that certain modules may have been > >> loaded, > >> and should stay loaded. > >> > >> I haven't used this in combination with sticky modules myself > >> (maybe > >> others have). > >> If you notice any issues related to this, let us know, since that > >> would > >> be a bug. > >> > > I'll give it a try and see how it works, thanks. > > > > - Trey > >

