This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Title: wsgiref.util FileWrapper raises ValueError: I/O operation on closed file.
Type: Stage:
Components: Library (Lib) Versions: Python 3.6, Python 2.7
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: pje, samwyse
Priority: normal Keywords:

Created on 2016-02-05 18:40 by samwyse, last changed 2022-04-11 14:58 by admin.

File name Uploaded Description Edit samwyse, 2016-02-05 18:40 demonstrates the issue
Messages (1)
msg259685 - (view) Author: Samwyse (samwyse) * Date: 2016-02-05 18:40
While developing, I am using wsgiref.simple_server.  Using to serve static content isn't working.  The attached program demonstrates the issue.  Run it and connect to  You will see three buttons.  Clicking on 'wsgi.filewrapper' causes the FileWrapper class found in wsgiref.util to be used, while clicking on 'PEP 0333' uses code suggested in PEP 0333 (  Both of these fail.  Clicking on 'slurp' causes the entire file to loaded and returned in a list.  This works.

When an application returns an instance of environ['wsgi.file_wrapper'], or creates it's own iterator, an error is raised during the initial read of the file.  Reading the entire file and returning a single-element list (the 'slurp' technique) works, but is impractical for larger files.

I've tested this with both Python 2.7.9 and 3.4.3 under Windows 7 (my laptop) and 3.4.3 under Alpine Linux (a Docker instance).
Date User Action Args
2022-04-11 14:58:27adminsetgithub: 70487
2016-02-07 11:21:48SilentGhostsetnosy: + pje

versions: + Python 3.6, - Python 3.4
2016-02-05 18:40:05samwysecreate