Пока ваш файл или файловый объект является итеративным, просто возвращайте его из функции-обработчика вместо строки.
Обновление:
Чтобы загрузить его, установите заголовки Content-Type и Content-Disposition следующим образом:
cherrypy.response.headers["Content-Type"] = "application/x-download"
cd = 'attachment; filename="%s"' % name
cherrypy.response.headers["Content-Disposition"] = cd
Или используйте функцию serve_fileobj
в последних версиях cherrypy/lib/static.py
, которая делает это для вас и других.