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