How do i watch python source code files and restart when i save?

When I save a python source code file, I want to re-run the script. Is there a command that works like this (sort of like nodemon for node)?


Solution 1:

While there are probably ways to do this within the python ecosystem such as watchdog/watchmedo ( https://github.com/gorakhargosh/watchdog ), and maybe even linux scripting options with inotifywait ( https://linux.die.net/man/1/inotifywait ), for me, the easiest solution by far was... to just use nodemon! What I didn't know is that although the github tagline of nodemon is "Monitor for any changes in your node.js application and automatically restart the server - perfect for development" actually nodemon is a delicously generic tool and knows that .py files should be executed with python for example. Here's where I think the magic happens: https://github.com/remy/nodemon/blob/c1211876113732cbff78eb1ae10483eaaf77e5cf/lib/config/defaults.js

End result is that the command line below totally works. Yay!

$ nodemon hello.py
[nodemon] starting `python hello.py`

Solution 2:

You can install nodemon to watch for file changes.

e.g.

npm i -g nodemon

Then to use:

nodemon --exec python3 hello.py 

This is for when you use python3 in the command line. On windows you can also use 'py' instead.