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

-- 



Reply via email to