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,Bbut 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
