Thanks to both of you. 
I saw that line in the error ticket but dismissed it since the web2py 
access worked, the driver "must be there". Dumb :(

installed pymysql and reran my little test and it did indeed connect but 
generated the following:

cursors.py:166: 
<txmt://open?line=166&url=file:///Library/Python/2.7/site-packages/pymysql/cursors.py>
 Warning: (3090, u"Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. 
It will be removed in a future release.")
  result = self._query(query)

Does that look familiar? Something to take note of? Briefly ldid a search 
for it but found nothing

Thanks again
Jim

On Tuesday, August 8, 2017 at 8:14:39 PM UTC-7, Anthony wrote:
>
> Looks like you don't have a Python MySQL driver installed on your system. 
> It works in web2py because web2py includes pymysql in /gluon/contrib (but 
> /gluon/contrib is not part of sys.path when running a Python program 
> outside of the web2py context).
>
> Anthony
>
> On Tuesday, August 8, 2017 at 9:42:27 PM UTC-4, jim kaubisch wrote:
>>
>> I would have thought so, but it fails !!!  What am I missing?
>>
>> about as basic as can be - 
>> a plain 2-line vanilla python app  (with a running mysql db, created with 
>> the same  "db = DAL('mysql://root:password@localhost/mfm_curr_lib', 
>> pool_size = 10) "  and accessed happily by the web2py app)
>>
>> from pydal import DAL, Field
>>
>> db = DAL('mysql://root:password@localhost/mfm_curr_lib', pool_size = 10)
>>
>>
>>      … produces 
>>
>>
>> RuntimeError: 'Failure to connect, tried 5 times:\nTraceback (most recent 
>> call last):\n File "/Library/Python/2.7/site-packages/pydal/base.py", line 
>> 455, in __init__\n self._adapter = adapter(**kwargs)\n File 
>> "/Library/Python/2.7/site-packages/pydal/adapters/__init__.py", line 40, in 
>> __call__\n obj = super(AdapterMeta, cls).__call__(*args, **kwargs)\n File 
>> "/Library/Python/2.7/site-packages/pydal/adapters/base.py", line 373, in 
>> __init__\n super(SQLAdapter, self).__init__(*args, **kwargs)\n File 
>> "/Library/Python/2.7/site-packages/pydal/adapters/base.py", line 50, in 
>> __init__\n self.find_driver()\n File 
>> "/Library/Python/2.7/site-packages/pydal/adapters/base.py", line 101, in 
>> find_driver\n str(self.drivers))\nRuntimeError: No driver of supported ones 
>> (\'MySQLdb\', \'pymysql\', \'mysqlconnector\') is available\n'
>>
>> module body in mfm_media_model.py at line 63
>>
>> db = DAL('mysql://root:password@localhost:3306/mfm_curr_lib/', pool_size 
>> = 10)
>>
>> function __call__ in base.py at line 170
>>
>> obj = super(MetaDAL, cls).__call__(*args, **kwargs)
>>
>> function __init__ in base.py at line 475
>>
>> "Failure to connect, tried %d times:\n%s" % (attempts, tb)
>> On Tuesday, August 8, 2017 at 6:01:16 PM UTC-7, Anthony wrote:
>>>
>>> Sure, you can access the same database from multiple applications 
>>> (web2py or not).
>>>
>>> On Tuesday, August 8, 2017 at 6:29:30 PM UTC-4, jim kaubisch wrote:
>>>>
>>>> Thanks, I think you're right. But its working now, so I'll revisit it 
>>>> once the delivery heat is off.
>>>>
>>>> Please, on the related topic of my other post, I'm I missing something 
>>>> by thinking I should be able to access the SAME mysql db both from web2py 
>>>> as well as a standard Python program, assuming the same version of DAL? 
>>>> In fact, the web2py app creates the db and uses it fine, but the 
>>>> standalone app claims it can't connect to it.
>>>>
>>>> I haven't tried it, but what about 2 web2py apps? Can they access the 
>>>> same (mysql) db
>>>>
>>>> Thanks
>>>>
>>>> On Tuesday, August 8, 2017 at 12:56:23 PM UTC-7, Anthony wrote:
>>>>>
>>>>> As I was developing the app, I realized that I was writing basically 
>>>>>> the same code over and over and over, just with slight differences, e.g. 
>>>>>> the table name, the criteria, the fields I wanted to return and their 
>>>>>> display order...
>>>>>> so a couple of dictionaries to define (1) the tableviews criteria and 
>>>>>> (2) ordered list of fields to return and the core becomes a small 
>>>>>> parameterization of basically the same db query - 10s of lines of code.
>>>>>>
>>>>>
>>>>> Sounds like something you could handle by abstracting everything into 
>>>>> a special function and maybe using Python argument unpacking:
>>>>>
>>>>> db(db.table).select(*list_of_fields, **dictonary_of_named_arguments)
>>>>>
>>>>> Anthony
>>>>>
>>>>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to