|
Tim Valenta
tonightslastsong at gmail.com
Sun Jan 11 19:01:35 EST 2009
Apologies for more trouble on the caching issue-- I've been adapting some of my scripts over to this apache.load_module function, but I don't think I'm seeing resolution to the issue. If I've read the documentation properly, it seems that the PythonOption for auto-reloading is set to On by default, so to be clear, I haven't put a line for that in my httpd.conf file. Are there any other tricks, or have I simply misread the documentation? I still have to restart the Apache service in order to push the changes. Tim On Sun, Jan 11, 2009 at 2:32 PM, Tim Valenta <tonightslastsong at gmail.com> wrote: > Despite the jab at Windows, the site will be deployed on a Unix > machine. I just prefer Windows for ease of use, especially since my > wife has zero experience on a unix terminal or in the dearth of truly > professional software found on the Unix/Linux platform. So yes, in > the end it will be on a "real" operating system, But for now I'm > willingly sticking to a more user-friendly environment for the simple > folk. > > Given the characteristics of PHP that allow it to circumvent this > caching stuff, I still think a nice little friendly red-flag reminder > on the main mod_python tutorial should point out this limitation of an > Apache module like this, for those of us like me, who would have gone > many months more before having every accidentally found this manual > import method. > > On Sun, Jan 11, 2009 at 2:23 PM, Graham Dumpleton > <graham.dumpleton at gmail.com> wrote: >> >> 2009/1/12 Tim Valenta <tonightslastsong at gmail.com>: >> >> Still not short enough, so much so I stopped part way through. >> > >> > And for that I apologize. I do appreciate the straight answer given, >> > though I would appreciate much more the addition of that fact in some >> > point-blank documentation that was easy to find. I have scoured the >> > mod_python archives by search engine and came out utterly empty >> > handed. I knew what the problem was, but I could find nothing to >> > remedy the issue. I haven't encountered anything quite like this in >> > my adventures with PHP, perl, or other similar scripting languages >> > piloted by Apache. It raises a valid concern to which I ideally >> > should have found answers very quickly. >> > >> > I hope this cures the subsequent issue given in the latter half of my message. >> >> PHP is specifically designed for web applications and it purposely >> throws away all code at the end of each request and thus is reloading >> it all on every request. Have a read of: >> >> http://blog.ianbicking.org/2008/01/12/what-php-deployment-gets-right/ >> >> I would be very surprised if mod_perl auto reloaded code as it is >> similar to Python in that you are applying a non web language to the >> web. Only way perl code would be reload is if you were running them as >> CGI scripts. If you run Python as CGI scripts you will get reloading >> as well, but as with anything CGI, much slower. >> >> BTW, maybe read: >> >> http://blog.dscpl.com.au/2008/12/using-modwsgi-when-developing-django.html >> >> For WSGI hosted Python web application, this provides auto reloading >> on code changes. You do need to use a real operating system though, >> and not Windows. >> >> Graham >> >> > Tim >> > >> > On Sat, Jan 10, 2009 at 10:23 PM, Graham Dumpleton >> > <graham.dumpleton at gmail.com> wrote: >> >> >> >> 2009/1/11 Tim Valenta <tonightslastsong at gmail.com>: >> >> > Hello all-- I've been experiencing a caching issue from the >> >> > very beginning of my use of mod_python... It's been at least 2 months now, >> >> > and I keep running into actual issues that prevent me from coding. >> >> > I have a knack for over-explaining, so I'll try to keep this concise yet >> >> > descriptive. >> >> >> >> Still not short enough, so much so I stopped part way through. >> >> >> >> The simple matter of it is that mod_python does not do deep checking >> >> of code for changes, nor does it automatically restart the process >> >> when code is changed. Thus the need to restart Apache when you make >> >> code changes to anything imported from sys.path is expected and normal >> >> behaviour. >> >> >> >> The only time any code is automatically reloaded is the direct code >> >> files imported by mod_python using its own special module importer. >> >> This is documented under 'import_module()' function in: >> >> >> >> http://www.modpython.org/live/current/doc-html/pyapi-apmeth.html >> >> >> >> Graham >> >> >> >> > I'm developing a site on my local machine, Windows Vista, using Apache 2.2.x >> >> > and mod_python 3.3.1 . I'm a programmer for a living, and I'm not quick to >> >> > point the finger at the language, *but* (you knew that was coming, eh?) I >> >> > know my code isn't to blame for the issue: >> >> > I write some basic code for an 'index.py' file, using the >> >> > mod_python.publisher handler. 'index.py' includes other modules which I've >> >> > coded from that same location, etc, etc. Nothing fancy. Any changes I make >> >> > in the 'index.py' file will be reflected immediately on my local web server. >> >> > On the other hand, any changes I make to the modules included via import >> >> > from within 'index.py' are completely ignored by the web server. It took me >> >> > a while to realize that my pages didn't reflect my code. I also discovered >> >> > that the .pyc files had nothing to do with it. I finally just restarted the >> >> > apache web service (which in fact runs as a service on my machine), and then >> >> > my code finally gets pushed through to the web server. >> >> > I've been looking around practically every other day for documentation on >> >> > how to make apache/mod_python simply cut it out and stop caching my python >> >> > code, but I've found nothing. You can imagine the annoyance this presents, >> >> > since I have to restart my web server every single time I make even the >> >> > slightest change to a 'utility.py' file, etc. >> >> > I've been coping with the problem for a while now, but then I've found far >> >> > more annoying issues recently. To abbreviate the problem into short terms, >> >> > I've got a main module 'MAIN' which imports another module for a class >> >> > 'CLASS'. CLASS also has a few imports, such as 'backend' stuff for >> >> > interfacing with various databases, etc. We'll call the 'backend' module >> >> > "BACKEND". Given the setup, any changes I make to CLASS or BACKEND require >> >> > an apache restart in order to take effect. >> >> > I have a function in CLASS which calls a function from it's imported BACKEND >> >> > module. I tried adding a parameter to the BACKEND function in question, and >> >> > properly passed said parameter while in CLASS, yet the mod_python debugger >> >> > spits out an error about me having passed 3 arguments, when the BACKEND >> |