Dear list,

What I would like to do is something like:

In myModule.py ( a wrapper module for different versions of the module),

  if lib == 'standard':
    from myModule_std import *
  elsif lib == 'optimized'
    from myModule_op import *

but I do not know how to pass variable lib to myModule.py to achieve the following effect:

  >>> lib = 'standard'
  >>> from myModule import *     # actually import myModule_std

From what I have read, from .... does not take any parameter. Maybe I should use environmental variables?

  >>> os.putenv('lib', 'standard')
  >>> from myModule import *

  myModule.py
  -------------
  import os
  lib = os.getenv('lib')
  ...


or use a separate module?

  param.py
  ---------

  para = {}
  def setParam(key, val):
    para[key] = val

  main session
  ------------
  >>> import param
  >>> param.setParam('lib','standard')
  >>> from myModule import *

  in myModule.py
  --------------
  from param import para
  try:
    lib = para['lib']
  except:
    lib = 'standard'
  ...

Is there an established approach for this problem?

Many thanks in davance.
Bo

===============================================================================
FULL STORY:

I have several modules all (SWIG) wrapped from the same C++ source code but with different compiling flags. For example,

  myModule_std  (standard module)
  myModule_op   (optimized, without error checking)
  ...

These modules are put directly under /.../site-packages . To load a module, I use, for example

  from myModule_op import *

This works fine until I need to write some helper functions for myModule_?? in another module myHelper.py since I do not know which myModule is being used

  from myModule?? import A,B

I find one solution

  # find out which module is being used
  import sys
  if 'myModule_op' in sys.modules.keys():
    from myModule_op import A,B
  else:
    from myModule_std import A,B

but not completely satisfied. Therefore, I am writing a 'wrapper' module myModule that can load one of the myModule_?? modules according to user supplied info.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to