Flask PermissionError: [Errno 13] В доступе отказано - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь запустить приложение Flask, используя /opt/mount1/python35/bin/python3.5 notification.py, и получаю следующую ошибку:

WARNING:tensorflow:From /opt/mount1/python35/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
 * Serving Flask app "notification" (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://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
Traceback (most recent call last):
  File "notification.py", line 19, in <module>
    app.run(debug=True)
  File "/opt/mount1/python35/lib/python3.5/site-packages/flask/app.py", line 943, in run
    run_simple(host, port, self, **options)
  File "/opt/mount1/python35/lib/python3.5/site-packages/werkzeug/serving.py", line 988, in run_simple
    run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
  File "/opt/mount1/python35/lib/python3.5/site-packages/werkzeug/_reloader.py", line 332, in run_with_reloader
    sys.exit(reloader.restart_with_reloader())
  File "/opt/mount1/python35/lib/python3.5/site-packages/werkzeug/_reloader.py", line 176, in restart_with_reloader
    exit_code = subprocess.call(args, env=new_environ, close_fds=False)
  File "/opt/mount1/python35/lib/python3.5/subprocess.py", line 247, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/opt/mount1/python35/lib/python3.5/subprocess.py", line 676, in __init__
    restore_signals, start_new_session)
  File "/opt/mount1/python35/lib/python3.5/subprocess.py", line 1289, in _execute_child
    raise child_exception_type(errno_num, err_msg)
PermissionError: [Errno 13] Permission denied

Я дал рекурсивное разрешение 777 на папку приложения колбы.

Из приведенной выше трассировки стека я не уверен, что происходит не так.

Любая помощь будет оценена. Спасибо!


Обновление

Я попытался запустить приложение Flask, используя core python из CentOS 7.6, т.е. Python 2.7 , и оно сработало !!

Я не уверен, почему не работает для Python версии 3.5.6 , которая была установлена ​​с его RPM на путь /opt/mount1/python35.

Ответы [ 2 ]

2 голосов
/ 24 апреля 2019

Ошибка 13 (ошибка ваших прав доступа) обычно устраняется путем изменения номера порта. Номера портов TCP / IP ниже 1024 являются зарегистрированными или «привилегированными» номерами портов - пользователям запрещается запускать на них серверы. Исходя из первого показанного предупреждающего сообщения (касающегося сервера в производственной среде), я полагаю, что ваше приложение запускается с низким номером порта (вероятно, 80), но вы, если вы запускаете его с другим номером порта, скажем, 4000 или что-то в этом роде (более 1024), вы избежите этой ошибки.

Вы можете найти эту ссылку полезной

выдержка:

import socket

HOST = '127.0.0.1'  # Standard loopback interface address (localhost)
PORT = 65432        # Port to listen on (non-privileged ports are > 1023)
1 голос
/ 27 апреля 2019

Поскольку я установил Python 3.5 отдельно по другому пути, я должен был поместить следующий shebang в верхней части моего файла, чтобы решить эту проблему:

#!/opt/mount1/python35/bin/python3.5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...