Why would a Web2Py website work locally but give me errors when I upload it to PythonAnywhere? How would I fix an error I don't get locally?
It sounds like you're running web2py on Python 3 locally and with Python 2 on PythonAnywhere.  The best solution would be to upgrade it on PythonAnywhere:

Make sure that you're using the most recent version of web2py itself by upgrading it from the main admin page inside your hosted web2py.
Once it's fully upgraded, go to the "Web" page inside PythonAnywhere and change the Python version to the version of Python 3 that matches the one that you're using locally (eg. 3.7 or 3.8)
Reload the site using the green button at the top of the "Web" page inside PythonAnywhere.

Then you should be able to upload your app.
I created an app successfully from a Tutorial on Web2Py but when I uploaded the application to PythonAnywhere, I received this error:
Error ticket for "pluralsight"
Ticket ID
75.159.30.26.2020-07-17.15-41-34.00821419-8e86-4d99-881d-c2cb400d0e22
<type 'exceptions.ValueError'> unsupported pickle protocol: 3
Version
web2py™     Version 2.18.5-stable+timestamp.2019.04.08.04.22.03
Python  Python 2.7.12: /usr/local/bin/uwsgi (prefix: /usr)