Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

python

nodemon

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

like image 994
bkinsey808 Avatar asked Mar 19 '18 02:03

bkinsey808


People also ask

Is there a Nodemon for Python?

You can install nodemon to watch for file changes. e.g. This is for when you use python3 in the command line.


2 Answers

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` 
like image 80
bkinsey808 Avatar answered Oct 13 '22 13:10

bkinsey808


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.

like image 29
Josh Dando Avatar answered Oct 13 '22 14:10

Josh Dando