用 uvicorn 重新加载标志:我们可以排除某些代码吗?

reload flag with uvicorn: can we exclude certain code?

在重新加载带有 --reload 标志的脚本时,是否有可能以某种方式排除代码的某些部分?

uvicorn main:app --reload

用例:我有一个模型需要花费很多时间来加载,所以我想知道是否有办法在重新加载时忽略该行代码。还是根本不可能?

我不相信这是可能的,当服务器重新加载时,它会从头开始将所有需要的文件加载到内存中。它不保留上次发射的记忆。

更新

Uvicorn 现在支持 including/excluding 某些 directories/files to/from 监视列表。

  --reload-include TEXT           Set glob patterns to include while watching
                                  for files. Includes '*.py' by default, which
                                  can be overridden in reload-excludes.
  --reload-exclude TEXT           Set glob patterns to exclude while watching
                                  for files. Includes '.*, .py[cod], .sw.*,
                                  ~*' by default, which can be overridden in
                                  reload-excludes.

不,没有办法排除某些东西,但是您可以使用 --reload-dir 标志明确说明要查看的内容:

  --reload-dir TEXT               Set reload directories explicitly, instead
                                  of using the current working directory.

https://www.uvicorn.org/#command-line-options