我在基于vagrant的linux系统上运行这个脚本,这是一个运行flask应用程序的简单基本代码,我得到这个错误:
引发子异常类型(errno-num,err-msg)
权限错误:[errno 13]权限被拒绝
这是剧本:
#!/usr/bin python3
from flask import Flask
app = Flask(__name__)
@app.route('/')
@app.route('/hello')
def helloworld():
return 'Hello and Welcome to flask'
if __name__ == '__main__':
app.debug = True
app.run(host='0.0.0.0', port=5000)
我得到的错误是:
vagrant@vagrant:/vagrant$ python3 project.py
* Serving Flask app "project" (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 stat
Traceback (most recent call last):
File "project.py", line 14, in <module>
app.run(host='0.0.0.0', port=5000)
File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 943, in run run_simple(host, port, self, **options)
File "/usr/local/lib/python3.5/dist-packages/werkzeug/serving.py", line 988, in run_simple
run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
File "/usr/local/lib/python3.5/dist-packages/werkzeug/_reloader.py", line 332, in run_with_reloader
sys.exit(reloader.restart_with_reloader())
File "/usr/local/lib/python3.5/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/python3.5/subprocess.py", line 557, in call
with Popen(*popenargs, **kwargs) as p:
File "/usr/lib/python3.5/subprocess.py", line 947, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg)
PermissionError: [Errno 13] Permission denied
最佳答案
可能是权限错误,因为Vagrant
试图运行Flask应用程序,但没有必要的可执行权限?
我之所以这么说是因为你的堆栈跟踪的这一部分:
权限错误:[errno 13]权限被拒绝
在这行代码上似乎失败了:app.run(host='0.0.0.0', port=5000)
也许您可以对包含flask项目的目录授予可执行权限,并查看这是否有助于解决您的问题:
chmod -R 755 /path/to/directory
希望能帮上忙!
关于linux - 权限错误权限在简单的基本Flask应用程序中被拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55549964/