Additional information: I added a print to the front end of DAL.__init__ and was surprised to find driver_args was set to {'check_same_thread': False} but I did not set it in my db = DAL() class constructor call.
So here is the issue. I start up the development environment on Linux with a terminal command "python web2py.py" sitting in the correct web2py directory. Because I have Tcl/TK installed on the system it comes up, solicits an admin password and then I start the server. This in turn brings up a browser window running the welcome application. The welcome application as written uses SQLLite as the database and since it is default installed in Python >= 2.5 I have the driver and a connection succeeds. The SQLLite adapter does use this driver_args parameter and if it is not set forces it to the value I am seeing. Somehow driver_args gets stored globally and becomes the default for all other adapter calls to __init__ on any other driver as well. To test this theory I commented out the db=DAL(...) line in db.py in the welcome application and restarted the server. This caused the welcome app to crash during the TclTk solicited start of the welcome app when the browser is opened but at least the DAL did not get initialized using the SQLLite database. Now I am able to run my own application and the driver_args = {} which would be correct for the PostgreSQL adapter. Hope that helps isolate it a little better. Ron