【问题标题】:PermissionError: [Errno 13] Permission denied Flask.run()PermissionError: [Errno 13] 权限被拒绝 Flask.run()
【发布时间】:2016-11-12 21:52:13
【问题描述】:

我正在使用 python 3 运行 MacOS X。文件夹和文件有 755,但我也在 777 中对其进行了测试,但没有运气。我的问题是,如果我有正确的权限,为什么它不让我在没有 sudo 的情况下运行。还是我的设置不正确?

cris-mbp:ProjectFolder cris$ python3 zbo.py 
Traceback (most recent call last):
  File "zbo.py", line 9, in <module>
    app.run(host="127.0.0.1",port=81,debug=True)
  File "/usr/local/lib/python3.5/site-packages/flask/app.py", line 843, in run
    run_simple(host, port, self, **options)
  File "/usr/local/lib/python3.5/site-packages/werkzeug/serving.py", line 677, in run_simple
    s.bind((hostname, port))
PermissionError: [Errno 13] Permission denied
cris-mbp:ProjectFolder cris$ sudo python3 zbo.py 
 * Running on http://127.0.0.1:81/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger pin code: 106-133-233

【问题讨论】:

    标签: python python-3.x flask


    【解决方案1】:

    您正在尝试在 privileged port (81) 上运行应用程序 - 如果您使用更高的端口,例如 5000,您将不需要 sudo 权限。

    【讨论】:

    • 谢谢,我不知道特权端口。有道理。
    • 1024以下的TCP/IP端口号比较特殊,普通用户不能在上面运行服务器。
    【解决方案2】:

    bind 调用时出现“权限被拒绝”错误;这与目录权限无关。

    您正在尝试绑定到端口 81(一个奇怪的选择),这是一个特权端口(小于 1024 的端口)。这意味着您需要以 root 身份运行它。

    【讨论】:

    • 谢谢,我不知道特权端口。有道理。
    • “这意味着您需要以 root 身份运行它。” - 在这种情况下,更好的建议是使用 1024 以上的端口。所以 OP 不会不必以 root 身份运行他的 Web 应用程序开发服务器。
    【解决方案3】:

    转到 c:\python27\ 目录并设置 python.exe 和选项卡以兼容并选择管理员权限选项并应用更改。现在您发出它允许创建套接字连接的命令。之后使用 python 运行脚本

    【讨论】:

    • 你说的不是 Python3 吗?
    • 问题被标记为 python3.x
    • 我在python 2.7中使用过
    【解决方案4】:

    希望这是一个不错的答案,但您可以通过以超级用户身份运行 Flask 来解决此问题。 像这样:

    sudo python3 app.py
    

    或者在 Windows 中,只需以管理员身份运行 PowerShell 或命令提示符并正常调用 Python。

    【讨论】:

      猜你喜欢
      • 2015-07-17
      • 2016-07-25
      • 2018-11-18
      • 2020-07-01
      • 2019-11-09
      • 2020-06-06
      • 2021-11-11
      • 2020-02-27
      • 2017-10-25
      相关资源
      最近更新 更多