Boostcamp AI tech 3기

streamlit error : raise OSError(errno.ENOSPC, "inotify watch limit reached")OSError: [Errno 28] inotify watch limit reached 해결방법

mcdn 2022. 5. 30. 13:38
반응형

 

streamlit 실행시키면서 아래와 같은 에러가 나타났다. 

 

(bc) root@50907c89e3bc:~/input/final-project-level3-cv-11/fastapi# streamlit run app/frontend.py --server.port 30001                              
Traceback (most recent call last):
  File "/opt/ml/anaconda3/envs/bc/bin/streamlit", line 8, in <module>
    sys.exit(main())
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/streamlit/cli.py", line 190, in main_run
    _main_run(target, args, flag_options=kwargs)
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/streamlit/cli.py", line 218, in _main_run
    bootstrap.run(file, command_line, args, flag_options)
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/streamlit/bootstrap.py", line 359, in run
    server.add_preheated_report_session()
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/streamlit/server/server.py", line 669, in add_preheated_report_session
    session = self._create_or_reuse_report_session(ws=None)
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/streamlit/server/server.py", line 705, in _create_or_reuse_report_session
    session = ReportSession(
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/streamlit/report_session.py", line 109, in __init__
    self._local_sources_watcher = LocalSourcesWatcher(
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/streamlit/watcher/local_sources_watcher.py", line 54, in __init__
    self._register_watcher(
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/streamlit/watcher/local_sources_watcher.py", line 98, in _register_watcher
    watcher=FileWatcher(filepath, self.on_file_changed),
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/streamlit/watcher/event_based_file_watcher.py", line 81, in __init__
    file_watcher.watch_file(file_path, on_file_changed)
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/streamlit/watcher/event_based_file_watcher.py", line 157, in watch_file
    folder_handler.watch = self._observer.schedule(
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/watchdog/observers/api.py", line 297, in schedule
    emitter.start()
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/watchdog/utils/__init__.py", line 93, in start
    self.on_thread_start()
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/watchdog/observers/inotify.py", line 118, in on_thread_start
    self._inotify = InotifyBuffer(path, self.watch.is_recursive)
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/watchdog/observers/inotify_buffer.py", line 35, in __init__
    self._inotify = Inotify(path, recursive)
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/watchdog/observers/inotify_c.py", line 167, in __init__
    self._add_dir_watch(path, recursive, event_mask)
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/watchdog/observers/inotify_c.py", line 364, in _add_dir_watch
    self._add_watch(path, mask)
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/watchdog/observers/inotify_c.py", line 385, in _add_watch
    Inotify._raise_error()
  File "/opt/ml/anaconda3/envs/bc/lib/python3.8/site-packages/watchdog/observers/inotify_c.py", line 397, in _raise_error
    raise OSError(errno.ENOSPC, "inotify watch limit reached")
OSError: [Errno 28] inotify watch limit reached

원래 명령어가 streamlit run app/frontend.py --server.port 30001    라고 했을 때 뒤에 옵션 추가하면 된다.                           

streamlit run app/frontend.py --server.port 30001

 

 

 

해결방법

뒤에 --server.fileWatcherType none 옵션을 붙여준다. 

streamlit run app/frontend.py --server.port 30001 --server.fileWatcherType none

streamlit run app/frontend.py --server.port 30001 --server.fileWatcherType none

그러면 해결

You can now view your Streamlit app in your browser.

메시지가 뜨면 성공 

 

참고 : 

https://discuss.streamlit.io/t/oserror-errno-24-inotify-instance-limit-reached/5506/6

반응형