Thank you for your questions about TabPy and Python. I have moved this thread to our brand new Tableau Forum space - Tableau External Services for asking these sorts of questions. We have a team here at Tableau monitoring this area and they may be able to best assist here.
Currently, any workbook that runs Python calculations will require a connection to TabPy, so for sharing workbooks that require Python there are two options. Since external service calculations are performed as table calculations, they are not persisted in the workbook or as extracts. At present, Reader and Public do not support TabPy connections.
The first option would be as you described, to materialize the results and share those with the workbook.
The second would be to run a TabPy server that would be accessible to your clients and point them to this server. TabPy Server can be accessed remotely by Tableau Desktop or Server.