我如何观看python源代码文件并在保存时重新启动?

bki*_*808 20 python nodemon

当我保存python源代码文件时,我想重新运行脚本.是否有一个像这样工作的命令(有点像节点的nodemon)?

bki*_*808 41

虽然有可能在python生态系统中执行此操作,例如watchdog/watchmedo(https://github.com/gorakhargosh/watchdog),甚至可能使用inotifywait的linux脚本选项(https://linux.die.net/) man/1/inotifywait),对我来说,到目前为止最简单的解决方案是......只使用nodemon!我不知道的是,尽管nodemon的github标语是"监视node.js应用程序中的任何更改并自动重启服务器 - 非常适合开发"实际上nodemon是一个非常通用的工具,并且知道.py文件应该例如,用python执行.这就是我认为魔术发生的地方:https://github.com/remy/nodemon/blob/c1211876113732cbff78eb1ae10483eaaf77e5cf/lib/config/defaults.js

最终结果是下面的命令行完全有效.好极了!

$ nodemon hello.py
[nodemon] starting `python hello.py`
Run Code Online (Sandbox Code Playgroud)

  • 由于 `npx` 能够运行节点可执行文件并希望在每次运行时清除屏幕,我一直在使用 `npx nodemon --exec "clear;python3" hello.py`,这是我从 https:// 发现的github.com/remy/nodemon/issues/1318。我认为其他人也可能会欣赏这种方法。 (6认同)

Jos*_*ndo 17

您可以安装nodemon来监视文件更改。

例如

npm i -g nodemon
Run Code Online (Sandbox Code Playgroud)

然后使用:

nodemon --exec python3 hello.py 
Run Code Online (Sandbox Code Playgroud)

这是用于在命令行中使用python3的情况。在Windows上,您也可以使用“ py”代替。


小智 14

我发现与 nodemon 最相似的方法是使用 watchdog 包:

pip install watchdog
Run Code Online (Sandbox Code Playgroud)

它带有一个名为 watchmedo 的实用程序:

watchmedo shell-command \
 --patterns="*.py" \
 --command='python "${watch_src_path}"' \
 .
Run Code Online (Sandbox Code Playgroud)

现在只需处理您.py的文件,每次保存文件时都会执行它。

  • 即使对于 GUI 应用程序来说也是完美的 `watchmedo auto-restart -p "*.py" -R python3 -- application.py`!使用“watchmedo auto-restart -h”查看帮助。 (3认同)

pro*_*eus 7

我只是使用npx nodemon pythonfile.py 并且它有效。确保您使用的是nodemon v2.0.x或更高版本

  • 我喜欢节点生态系统的原因之一 (2认同)