By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
458,224 Members | 1,120 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 458,224 IT Pros & Developers. It's quick & easy.

Changing the module not taking effect in calling module

P: n/a
Hi,

I've a module report.py having a set of funtions to open/close/write
data to a log file. I invoke these functions from another module
script.py.

Whenever I'm changing something in report.py, I'm running the file
(however, it has not effect). After that I'm running script.py again.
However, the output is not taking effect.

If I shut the IDLE interpreter and all the other files and then reopen
again; and then run script.py, the output is taking effect.

Is there any way to improve it? I'm new to Python.

-Gopal.

Sep 27 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Gopal wrote:
Hi,

I've a module report.py having a set of funtions to open/close/write
data to a log file. I invoke these functions from another module
script.py.

Whenever I'm changing something in report.py, I'm running the file
(however, it has not effect). After that I'm running script.py again.
However, the output is not taking effect.

If I shut the IDLE interpreter and all the other files and then reopen
again; and then run script.py, the output is taking effect.

Is there any way to improve it? I'm new to Python.

-Gopal.


you could try "reload(module)" instead of "import module" or running the file.
Sep 27 '05 #2

P: n/a
Gopal wrote:
I've a module report.py having a set of funtions to open/close/write
data to a log file. I invoke these functions from another module
script.py.

Whenever I'm changing something in report.py, I'm running the file
(however, it has not effect). After that I'm running script.py again.
However, the output is not taking effect.

If I shut the IDLE interpreter and all the other files and then reopen
again; and then run script.py, the output is taking effect.

Is there any way to improve it? I'm new to Python.


If I understand you correctly, you are importing your module report in
script.py. If so, you need reload.

When in IDLE, you have a python process running, in which you execute
your program. The first time you run script.py after starting IDLE, your
module report is imported from file. The next time you run script.py,
there is already a module named report in memory. Then the corresponding
file will not be executed again. Instead, the one in memory will be used.

What I do when I am developing a module for a program is that I both
import and reload the module in my main file. Once I think I am done
developing, I remove the reload statement. So, in your script.py, I
would write:

import report
reload(report)

HTH
/MiO
Sep 27 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.