Every time I make a change to a python script I have to reload python and re-import the module. Please advise how I can modify my scripts and run then without having to rela
I've got a suggestion, based on your comment describing your work flow:
first, i run python3.1 in terminal second, i do "import module" then, i run a method from the module lets say "module.method(arg)" every time, i try to debug the code, i have to do this entire sequence, even though the change is minor. it is highly inefficient
Instead of firing up the interactive Python shell, make the module itself executable. The easiest way to do this is to add a block to the bottom of the module like so:
if __name__ == '__main__':
method(arg) # matches what you run manually in the Python shell
Then, instead of running python3.1, then importing the module, then calling the method, you can do something like this:
python3.1 modulename.py
and Python will run whatever code is in the if __name__ == '__main__'
block. But that code will not be run if the module is imported by another Python module. More information on this common Python idiom can be found in the Python tutorial.
The advantage of this is that when you make a change to your code, you can usually just re-run the module by pressing the up arrow and hitting enter. No messy reloading necessary.