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

时间:2018-03-19 02:32:02

标签: python nodemon

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

5 个答案:

答案 0 :(得分:24)

虽然有可能在python生态系统中执行此操作,例如watchdog / watchmedo(https://github.com/gorakhargosh/watchdog),甚至可能使用inotifywait(https://linux.die.net/man/1/inotifywait)的linux脚本选项,对我来说,最简单的解决方案到目前为止...只是使用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`

答案 1 :(得分:10)

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

例如

npm i -g nodemon

然后使用:

nodemon --exec python3 hello.py 

这用于在命令行中使用python3时。在Windows上,您也可以改用“ py”。

答案 2 :(得分:2)

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

pip install watchdog

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

watchmedo shell-command \
 --patterns="*.py" \
 --command='python "${watch_src_path}"' \
 .

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

答案 3 :(得分:1)

实际上,您可以从他们的文档中将nodemon与python一起使用:

运行非节点脚本nodemon也可以用于执行和 监视其他程序。 nodemon将读取 正在运行脚本并监视该扩展名而不是.js(如果存在) 没有nodemon.json:

nodemon --exec "python -v" ./app.py

现在,nodemon将在详细模式下使用python运行app.py。 您没有将args传递给exec程序,则不需要 引号),然后查找扩展名为.py的新文件或修改过的文件。

https://github.com/remy/nodemon#running-non-node-scripts

答案 4 :(得分:0)

我只使用npx nodemon pythonfile.py 并确保您正在使用nodemon v2.0.x 或以上