Issue 1:
Expected Behavior

Place the following code into main.py.

from flask import Flask

app = Flask(__name__)
app.config['DEBUG'] = True

@app.route('/')
def root():
return ":)"

app.run()

Set the execute bit on main.py:

chmod +x main.py

Running the following command should start the server: python main.py

Actual Behavior

$ python main.py
* Serving Flask app "main" (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 "main.py", line 11, in <module>
app.run()
File "/Users/wadegilmer/miniconda3/envs/hello-flask/lib/python3.7/site-packages/flask/app.py", line 943, in run
run_simple(host, port, self, **options)
File "/Users/wadegilmer/miniconda3/envs/hello-flask/lib/python3.7/site-packages/werkzeug/serving.py", line 988, in run_simple
run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
File "/Users/wadegilmer/miniconda3/envs/hello-flask/lib/python3.7/site-packages/werkzeug/_reloader.py", line 332, in run_with_reloader
sys.exit(reloader.restart_with_reloader())
File "/Users/wadegilmer/miniconda3/envs/hello-flask/lib/python3.7/site-packages/werkzeug/_reloader.py", line 176, in restart_with_reloader
exit_code = subprocess.call(args, env=new_environ, close_fds=False)
File "/Users/wadegilmer/miniconda3/envs/hello-flask/lib/python3.7/subprocess.py", line 323, in call
with Popen(*popenargs, **kwargs) as p:
File "/Users/wadegilmer/miniconda3/envs/hello-flask/lib/python3.7/subprocess.py", line 775, in __init__
restore_signals, start_new_session)
File "/Users/wadegilmer/miniconda3/envs/hello-flask/lib/python3.7/subprocess.py", line 1522, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: '/Users/wadegilmer/lc101/flask_error/main.py'

Environment

osx version: 10.13.6

Python version: 3.7.3

Flask version: 1.0.2

Werkzeug version: 0.15.2

Commentary

Adding a shabang line to main.py resolves the issue but is kind of unexpected. Additionally removing the execute bit also resolves the issue. Is this the expected behavior?

Issue 2:
The new 0.15.0 does not run in Docker for Windows. Have not tried Docker on other platforms.

Minimal example with Flask.

app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
return 'Hello, world!'

if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')

Dockerfile

FROM python:3-onbuild
COPY . /usr/src/app
CMD ["python", "app.py"]

requirements.txt

# Werkzeug==0.14.1
Flask

Run docker build -t flask_test . and then docker run flask_test.

Error in container:

λ docker run flask_test
* Serving Flask app "app" (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 "app.py", line 11, in <module>
app.run(debug=True, host='0.0.0.0')
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 943, in run
run_simple(host, port, self, **options)
File "/usr/local/lib/python3.6/site-packages/werkzeug/serving.py", line 988, in run_simple
run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
File "/usr/local/lib/python3.6/site-packages/werkzeug/_reloader.py", line 332, in run_with_reloader
sys.exit(reloader.restart_with_reloader())
File "/usr/local/lib/python3.6/site-packages/werkzeug/_reloader.py", line 176, in restart_with_reloader
exit_code = subprocess.call(args, env=new_environ, close_fds=False)
File "/usr/local/lib/python3.6/subprocess.py", line 267, in call
with Popen(*popenargs, **kwargs) as p:
File "/usr/local/lib/python3.6/subprocess.py", line 709, in __init__
restore_signals, start_new_session)
File "/usr/local/lib/python3.6/subprocess.py", line 1344, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: '/usr/src/app/app.py

Uncomment the first line in requirements.txt and it runs properly after rebuild.