Instead of tack_changes() try this: from gluon.custom_import import custom_importer as __import__
On Wednesday, 12 December 2012 09:19:06 UTC-6, Chr_M wrote: > > Because I do not know the name of the module beforehand (it comes from a > database). > > 'import class2' does not work either, I still need to reload() the module. > I discovered also that the instantiation of class2 is persistant between > requests when I do not reload the modules. I initialize a list in class1 > and then add data from the database to this list. With every request the > list grows with the same data from the database so I end up with a load of > duplicate data in the list. I have to say that I am quite new to Python, so > maybe this persistence is a Python thing... > > Regards, Chris > > > On Wednesday, December 12, 2012 3:12:27 PM UTC+1, Massimo Di Pierro wrote: >> >> Why do you use __import__(class2) instead of >> >> import class2 >> >> If you do the latter, does track changes work? >> >> On Wednesday, 12 December 2012 01:33:41 UTC-6, Chr_M wrote: >>> >>> Python 2.7.3 >>> Web2py 2.2.1 >>> >>> The situation: >>> >>> In modules directory I have a subdirectory with two files class1.py and >>> class2.py. This is a package (empty __init__.py is present). class2.py >>> imports class1.py and Class2 inherits from Class1. My controller >>> dynamically imports class2 with the function __import__(class2). On top of >>> my db.py model I call the track_changes part. The modules do not seem to be >>> updated if I change code in class1.py or class2.py. >>> >>> I have solved it for now by reloading all the modules with reload() >>> after I import them. So after I dynamically import class2 in my controller >>> I call reload(class2). In class2.py after the import of class1 I call >>> reload(class1). This is the only way I get the code changes to work in both >>> files. >>> >>> It seems that the track_changes part is not working in this situation or >>> something? Or is there another solution? >>> >>> Regards, Chris >>> >>> >>> On Monday, December 10, 2012 4:34:33 PM UTC+1, Massimo Di Pierro wrote: >>>> >>>> It should work when you do it. >>>> >>>> Which python version? Which web2py version? >>>> >>>> On Monday, 10 December 2012 02:57:20 UTC-6, Chr_M wrote: >>>>> >>>>> I call this function at the top of my db.py model file. Is this not >>>>> the correct location? >>>>> >>>>> Regards, Chris >>>>> >>>>> >>>>> On Sunday, December 9, 2012 11:55:06 PM UTC+1, Massimo Di Pierro wrote: >>>>>> >>>>>> This has come up before. >>>>>> >>>>>> from gluon.custom_import import track_changes; track_changes() >>>>>> >>>>>> must be a model file, before the modules are imported, not in the >>>>>> modules themselves which are otherwise cached and therefore the line may >>>>>> or >>>>>> may not be executed. >>>>>> >>>>>> Massimo >>>>>> >>>>>> On Sunday, 9 December 2012 15:34:09 UTC-6, Chr_M wrote: >>>>>>> >>>>>>> Sometimes the changes in the code of a module (in the modules >>>>>>> directory) are not working when requesting the url that uses these >>>>>>> modules. >>>>>>> in the modules directory I have a subdirectory with python files that >>>>>>> form >>>>>>> a package (__init__.py file in this subdirectory). I have added >>>>>>> >>>>>>> from gluon.custom_import import track_changes >>>>>>> track_changes() >>>>>>> >>>>>>> in the first model that gets called, but still sometimes code >>>>>>> changes are not working. I noticed that the py-files in the modules dir >>>>>>> get >>>>>>> compiled to pyc-files. But at one point (it looks to be randomly) these >>>>>>> are >>>>>>> not compiled anymore when I change code in the py-files. But even when >>>>>>> I >>>>>>> remove these pyc-files, the code changes are still not working when >>>>>>> requesting the url. >>>>>>> >>>>>>> Am I missing something? Is there a cache I can clear or something? I >>>>>>> now have to restart web2py to make the code changes work... >>>>>>> >>>>>>> Thanks. >>>>>>> >>>>>>> Regards, Chris >>>>>>> >>>>>>> --

