When I use --reload-exclude
, or another directory is supposed to be watched, I still have the following:
Running development server on 0.0.0.0:8000
INFO: Will watch for changes in these directories: ['/app/src']
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO: Started reloader process [7] using WatchFiles
Traceback (most recent call last):
File "/opt/app-env/bin/uvicorn", line 8, in <module>
sys.exit(main())
File "/opt/app-env/lib/python3.8/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/opt/app-env/lib/python3.8/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/opt/app-env/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/opt/app-env/lib/python3.8/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/opt/app-env/lib/python3.8/site-packages/uvicorn/main.py", line 408, in main
run(
File "/opt/app-env/lib/python3.8/site-packages/uvicorn/main.py", line 571, in run
ChangeReload(config, target=server.run, sockets=[sock]).run()
File "/opt/app-env/lib/python3.8/site-packages/uvicorn/supervisors/basereload.py", line 45, in run
for changes in self:
File "/opt/app-env/lib/python3.8/site-packages/uvicorn/supervisors/basereload.py", line 64, in __next__
return self.should_restart()
File "/opt/app-env/lib/python3.8/site-packages/uvicorn/supervisors/watchfilesreload.py", line 85, in should_restart
changes = next(self.watcher)
File "/opt/app-env/lib/python3.8/site-packages/watchfiles/main.py", line 119, in watch
with RustNotify([str(p) for p in paths], debug, force_polling, poll_delay_ms, recursive) as watcher:
FileNotFoundError: Permission denied (os error 13) about ["/app/data"]
The command used was:
uvicorn --reload --reload-dir /app/src main:app
I guess it's because we don't really exclude, we just check the path to see if we should reload.
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too