Hi Niphlod, I tried using psycopg2 but there are few reasons because of which I can not use it. I am currently deploying travis CI to run Sahana Eden unit tests. psycopg2 fails a few of the tests which it really should not. You can see the build here [1].
[1] https://travis-ci.org/arnavsharma93/eden/jobs/37883503 So, any temporary fix of running pg8000? On 14 October 2014 17:54, Niphlod <[email protected]> wrote: > until pg8000 supports it, use psycopg2 instead. > > > On Tuesday, October 14, 2014 2:26:34 AM UTC+2, ArnvShrma wrote: >> >> Hi, >> >> I am facing the exact same issue. Any work-around for this? >> >> On Saturday, March 8, 2014 8:15:26 PM UTC+5:30, Tony Locke wrote: >>> >>> Thanks for your list (and patch) Mariano, that's very useful. I've >>> opened an issue for it at: >>> >>> https://github.com/mfenniak/pg8000/issues/30 >>> >>> On Monday, 3 March 2014 20:26:15 UTC, Mariano Reingart wrote: >>>> >>>> Including contrib in sys.path would be interesting but there could be >>>> collisions (for example, in this case, witch pg8000 will be imported: the >>>> one installed or the one in gluon.contrib?) >>>> >>>> Tony: there are other changes needed for web2py (see the diff for >>>> web2py DAL I've attached earlier), the most important are: >>>> >>>> * missing __version__ attribute (now it is on setup.py, web2py need it >>>> to differentiate drivers capabilities) >>>> * connect doesn't suppor dsn string anymore (you need to pass keyword >>>> parameters) >>>> * set_client_encoding is not present anymore (you need to execute SQL >>>> SET ...) >>>> * server_version attribute has a leading underscore (_server_version), >>>> this is need to detect server capabilities like JSON >>>> >>>> Also, for the pg8000 driver currently in web2py, I'd applied many >>>> bugfixes reported in github / launchpad for the original project (mainly >>>> data types, unicode, importing, etc.) >>>> Also, I'd improved the psycopg2 compatibility (i.e. >>>> set_client_encoding, autocommit, set_isolation_level), implementing the >>>> simple query protocol (the one that uses psycopg2, and to avoid overhead of >>>> non-prepared statements) and two-phase commit support. >>>> >>>> The last would be important for web2py distributed_transaction_commit, >>>> but currently gluon.dal is sending raw SQL PREPARE TRANSACTION / COMMIT >>>> PREPARED / ROLLBACK PREPARED without using dbapi proposed methods TPC >>>> Connection Methods (tpc_begin, tpc_prepare, tpc_commit, tpc_rollback, >>>> tpc_recover) >>>> >>>> You can see the detail of the changes applied to the web2py contrib >>>> pg8000 here: >>>> >>>> https://code.google.com/p/pg8000/source/list >>>> >>>> https://github.com/reingart/pg8000/commits/master >>>> >>>> If this kind of changes could be accepted (psycopg2 compatibility, >>>> simple query protocol, dbapi 2.0 two-pass commit, etc.), I could help to >>>> make the pull requests (note that some could depend on each other). >>>> Sorry I couldn't keep track of pg8000 due lack of time, so I don't know >>>> what direction the project has taken. >>>> >>>> Best regards, >>>> >>>> >>>> Mariano Reingart >>>> http://www.sistemasagiles.com.ar >>>> http://reingart.blogspot.com >>>> >>>> >>>> On Mon, Mar 3, 2014 at 10:23 AM, Massimo Di Pierro < >>>> [email protected]> wrote: >>>> >>>>> I agree with Niphlod. I do not like packages that need to be installed >>>>> to work and explicit relative imports is better than absolute imports. >>>>> Yet, this is not the only package we had to tweak to include in >>>>> contrib. So this may come up again. Any objection to include contrib in >>>>> sys.path? >>>>> >>>>> >>>>> On Sunday, 2 March 2014 18:29:45 UTC-6, Niphlod wrote: >>>>>> >>>>>> as long as you can use it without installing it in sys.path, then >>>>>> it's fine. If not, it can't be shipped with web2py, just supported as a >>>>>> module. >>>>>> I don't like packages that needs a complete install to work. It's >>>>>> true that we have venvs for quite some time now, but a module with less >>>>>> than 10 files can accomodate for relative imports quite finely without >>>>>> impairing the code-reader in everyone of us :P >>>>>> >>>>>> BTW, search for "explicit relative imports" in that doc :-P >>>>>> >>>>>> On Sunday, March 2, 2014 7:24:58 PM UTC+1, Tony Locke wrote: >>>>>>> >>>>>>> Hi, I'm a contributor to pg8000 and if there are any changes you >>>>>>> need to get pg8000 working with web2py, let me know. Looking at the >>>>>>> absolute import problem, PEP8 seems to think absolute imports are the >>>>>>> way >>>>>>> to go: >>>>>>> >>>>>>> http://legacy.python.org/dev/peps/pep-0008/ >>>>>>> <http://www.google.com/url?q=http%3A%2F%2Flegacy.python.org%2Fdev%2Fpeps%2Fpep-0008%2F&sa=D&sntz=1&usg=AFQjCNG8T4Krvic_V8TCmT4iog4T5e4pyg> >>>>>>> >>>>>>> (search for 'relative' in the text) but I'm open to persuasion :-) >>>>>>> >>>>>>> Cheers, >>>>>>> >>>>>>> Tony. >>>>>>> >>>>>>> On Saturday, 1 March 2014 11:18:43 UTC, Joe Barnhart wrote: >>>>>>>> >>>>>>>> Hi Mariano -- >>>>>>>> >>>>>>>> I'd like to encourage you to keep making pg8000 a viable >>>>>>>> alternative for web2py. I started with it but had to change to >>>>>>>> psycopg2 >>>>>>>> because of some issues that postgres handled better under the psy >>>>>>>> driver. >>>>>>>> But I think pypy could be the future of python and it won't support a >>>>>>>> driver like psycopg2 -- but it could support pg8000 since it is all >>>>>>>> python. >>>>>>>> >>>>>>>> It's just good to have an alternative because no driver does it all. >>>>>>>> >>>>>>>> -- Joe B. >>>>>>>> >>>>>>>> On Tuesday, February 25, 2014 6:55:17 PM UTC-8, Mariano Reingart >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Hi Horst: >>>>>>>>> >>>>>>>>> Sadly there have been a lot of changes in pg8000, so it is not >>>>>>>>> backward compatible with the current custom version in web2py. >>>>>>>>> >>>>>>>>> First, you need to delete the pg8000 folder in contrib, and put >>>>>>>>> the new pg8000 folder (the one with __init__.py) directly in the >>>>>>>>> web2py top >>>>>>>>> level folder (at the same level as gluon). >>>>>>>>> Note that the new pg8000 uses absolute imports that will not work >>>>>>>>> if pg8000 is in contrib folder (or it should be added to the >>>>>>>>> PYTHONPATH) >>>>>>>>> >>>>>>>>> Second, you need to apply the attached patch to gluon/dal.py to: >>>>>>>>> * change the import (and add a missing __version__ attribute) >>>>>>>>> * change connection to pass individual parameters (dsn string is >>>>>>>>> not supported anymore) >>>>>>>>> * change after_connection set_client_encoding to execute SQL >>>>>>>>> * change server_version to _server_version >>>>>>>>> >>>>>>>>> I'll propose (again) to the pg8000 group the changes I've >>>>>>>>> introduced for web2py, so the latest version could be used as a direct >>>>>>>>> drop-in replacement for psycopg2 >>>>>>>>> IIRC, at some stage the author gave me commit access, but I didn't >>>>>>>>> have time to pull my changes and missed some discussions about the >>>>>>>>> project >>>>>>>>> internals. >>>>>>>>> >>>>>>>>> Best regards >>>>>>>>> >>>>>>>>> >>>>>>>>> Mariano Reingart >>>>>>>>> http://www.sistemasagiles.com.ar >>>>>>>>> http://reingart.blogspot.com >>>>>>>>> >>>>>>>>> >>>>>>>>> On Tue, Feb 25, 2014 at 5:46 PM, Horst Horst <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> I've tried the latest pg8000 as a drop-in replacement, but it >>>>>>>>>> seems web2py can't import it: >>>>>>>>>> >>>>>>>>>> <type 'exceptions.RuntimeError'> Failure to connect, tried 5 >>>>>>>>>> times: Traceback (most recent call last): File >>>>>>>>>> "/Users/sfx/dev/mdb/web2py. >>>>>>>>>> app/Contents/Resources/gluon/dal.py", line 7766, in __init__ >>>>>>>>>> File "/Users/sfx/dev/mdb/web2py.app/Contents/Resources/gluon/dal.py", >>>>>>>>>> line 2756, in __init__ File "/Users/sfx/dev/mdb/web2py.app >>>>>>>>>> /Contents/Resources/gluon/dal.py", line 795, in find_driver >>>>>>>>>> RuntimeError: no driver available ('psycopg2', 'pg8000') >>>>>>>>>> >>>>>>>>>> I didn't step through it in the debugger, but the module's >>>>>>>>>> __init__.pyc got compiled, so I know web2py attempted an import. >>>>>>>>>> >>>>>>>>>> The latest pg8000/__init__.py contains a section which matches >>>>>>>>>> the former interface >>>>>>>>>> >>>>>>>>>> # For compatibility with 1.8 >>>>>>>>>> import pg8000 as dbapi >>>>>>>>>> DBAPI = dbapi >>>>>>>>>> pg8000_dbapi = DBAPI >>>>>>>>>> >>>>>>>>>> so I'd guess it's a minor problem, nonetheless I'm lost at this >>>>>>>>>> point. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Monday, February 24, 2014 9:32:05 PM UTC+1, Mariano Reingart >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> You could try to update pg8000 from the official: >>>>>>>>>>> >>>>>>>>>>> https://github.com/mfenniak/pg8000 >>>>>>>>>>> >>>>>>>>>>> Let us know if that works, so we could update the one >>>>>>>>>>> distributed with web2py >>>>>>>>>>> The one currently distributed in contrib is an older version >>>>>>>>>>> with custom patches (as it was not being mantained at the time it >>>>>>>>>>> was >>>>>>>>>>> included to web2py), but now the official site has updates that >>>>>>>>>>> could help >>>>>>>>>>> you in this case. >>>>>>>>>>> >>>>>>>>>>> Best regards >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Mariano Reingart >>>>>>>>>>> http://www.sistemasagiles.com.ar >>>>>>>>>>> http://reingart.blogspot.com >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Mon, Feb 24, 2014 at 10:18 AM, Horst Horst < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> I'm getting a: >>>>>>>>>>>> >>>>>>>>>>>> <class 'gluon.contrib.pg8000.errors.NotSupportedError'> type >>>>>>>>>>>> oid 114 not mapped to py type >>>>>>>>>>>> >>>>>>>>>>>> I'm wondering what's the best thing to do now? Currently I'm >>>>>>>>>>>> considering: >>>>>>>>>>>> >>>>>>>>>>>> - using TEXT instead. But my former JSON strings are then >>>>>>>>>>>> enclosed by "|" which leads to new errors >>>>>>>>>>>> >>>>>>>>>>>> - updating gp8000 (there seems to be a newer version, but the >>>>>>>>>>>> version numbering is confusing) >>>>>>>>>>>> >>>>>>>>>>>> - using psycopg2. How can I install this into an Mac OS >>>>>>>>>>>> standalone version of web2py? >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Resources: >>>>>>>>>>>> - http://web2py.com >>>>>>>>>>>> - http://web2py.com/book (Documentation) >>>>>>>>>>>> - http://github.com/web2py/web2py (Source code) >>>>>>>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>>>>>>>>>> --- >>>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>>> Google Groups "web2py-users" group. >>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from >>>>>>>>>>>> it, send an email to [email protected]. >>>>>>>>>>>> >>>>>>>>>>>> For more options, visit https://groups.google.com/grou >>>>>>>>>>>> ps/opt_out. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>> Resources: >>>>>>>>>> - http://web2py.com >>>>>>>>>> - http://web2py.com/book (Documentation) >>>>>>>>>> - http://github.com/web2py/web2py (Source code) >>>>>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>>>>>>>> --- >>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>> Google Groups "web2py-users" group. >>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>>> send an email to [email protected]. >>>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>> Resources: >>>>> - http://web2py.com >>>>> - http://web2py.com/book (Documentation) >>>>> - http://github.com/web2py/web2py (Source code) >>>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "web2py-users" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>> >>>> >>>> -- > Resources: > - http://web2py.com > - http://web2py.com/book (Documentation) > - http://github.com/web2py/web2py (Source code) > - https://code.google.com/p/web2py/issues/list (Report Issues) > --- > You received this message because you are subscribed to a topic in the > Google Groups "web2py-users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/web2py/BfSIbUSPk38/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- *Arnav Sharma <http://web.iiit.ac.in/~arnav.s/>* *IIITH* "If everything is under control, you are going too slow." - Some wise man with big nerdy glasses. -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

