PermissionError: [Errno 13] 权限被拒绝 Flask.run()

Posted

技术标签:

【中文标题】PermissionError: [Errno 13] 权限被拒绝 Flask.run()【英文标题】:PermissionError: [Errno 13] Permission denied 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

【问题讨论】:

【参考方案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。

【讨论】:

以上是关于PermissionError: [Errno 13] 权限被拒绝 Flask.run()的主要内容,如果未能解决你的问题,请参考以下文章

PermissionError Errno 13 in python

PermissionError: [Errno 13] 权限被拒绝

mac 在终端上运行脚本,提示PermissionError: [Errno 1] Operation not permitted

mac 在终端上运行脚本,提示PermissionError: [Errno 1] Operation not permitted

PermissionError: [Errno 1] for os.rename as quick action

PermissionError: [Errno 13] Permission denied: ‘name.pdf‘