Ошибка при загрузке флеш-памяти Python: «Errno 2 Нет такого файла или каталога» при запуске в Docker - PullRequest
3 голосов
/ 25 марта 2019

У меня проблема с запуском небольшого приложения Flask с Docker. Все отлично работает с отключенной отладкой, но когда я пытаюсь запустить его с отладкой, происходит сбой на этапе перезагрузки. На Windows работает нормально, проблема только в Docker.

В моем репозитории Docker я устанавливаю caffe и все необходимые мне зависимости (flask и wekrzeug). Я думал, что проблема может быть с перегрузчиком, поэтому я также установил сторожевой таймер, но он все еще обнаруживается. Не имеет значения, запускаю ли я сам app.py или вызываю python -m flask run.

docker run --volume=%cd%:/workspace -p 5001:5000 caffe:cpu
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
 * Restarting with inotify reloader
Traceback (most recent call last):
  File "app.py", line 53, in <module>
    app.run(debug = True, host='0.0.0.0')
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 943, in run
    run_simple(host, port, self, **options)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 988, in run_simple
    run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/_reloader.py", line 332, in run_with_reloader
    sys.exit(reloader.restart_with_reloader())
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/_reloader.py", line 176, in restart_with_reloader
    exit_code = subprocess.call(args, env=new_environ, close_fds=False)
  File "/usr/lib/python2.7/subprocess.py", line 523, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

Ответы [ 2 ]

2 голосов
/ 05 мая 2019

Я столкнулся с той же проблемой здесь, и решение для меня состояло в том, чтобы удалить исполняемый флаг из файла "run.py".

$ chmod -x run.py

Ошибка была очень похожей, но в моем случае я использую Ubuntu 18.04 WSL на компьютере с Windows 10.

0 голосов
/ 06 мая 2019

Попробуйте запустить приложение как модуль:

python -m flask run

См. https://github.com/pallets/flask/issues/1829 для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...