Am I correct in assuming this error is occurring because python is unable
to import the module and so web2py is trying to import it from local
modules:
File "/opt/web2py/gluon/custom_import.py", line 78, in custom_importer
result = sys.modules[modules_prefix]
KeyError: 'applications.welcome.modules.psycopg2'
On Thursday, March 31, 2022 at 5:02:20 PM UTC+2 Jim S wrote:
> I only mentioned that in case there were different versions of psycopg2 in
> the user home vs the system one. That could have caused some issues but
> since all are pre-3.1 it seems like it shouldn't cause a problem.
>
> -Jim
>
> On Thursday, March 31, 2022 at 9:52:06 AM UTC-5 [email protected] wrote:
>
>> Upon inspection it seems psycopg2 is installed at 3 locations. .
>>
>> */home/ouruser/.local/lib/python3.6/site-packages/psycopg2*
>> */usr/local/lib64/python3.6/site-packages*
>> *AND*
>>
>> */usr/lib64/python3.6/site-packages/psycopg2*
>>
>> Two first two are 2.9.3 and the last one is 2.8.6.
>>
>> When I log the packages using this code
>> import pkg_resources
>> pkgs = str({p.project_name: p.version for p in pkg_resources.working_set})
>>
>> I get 'psycopg2': '2.9.3' among others. However, importing it does not
>> work.
>>
>> Perhaps we should try with a newer version of python again with sudo pip
>> install. Though if it were a compatibility problem I don't see why it
>> should work without wsgi.
>> On Thursday, March 31, 2022 at 4:20:45 PM UTC+2 Jim S wrote:
>>
>>> You don't have different versions of psycopg2 in the ourusr vs system
>>> drivers do you? Looks like newer versions of psycopg2 no longer support
>>> python 3.6
>>>
>>> https://www.psycopg.org/psycopg3/docs/basic/install.html
>>>
>>>
>>>
>>> On Thursday, March 31, 2022 at 9:01:24 AM UTC-5 [email protected]
>>> wrote:
>>>
>>>> Thank you for the reply!
>>>>
>>>> I believe we've already tried sudo pip install psycopg2.
>>>> Psycopg2 seems to be located at
>>>> */usr/local/lib64/python3.6/site-packages*
>>>> Other packages that don't exhibit the same problem are also there.
>>>> There's another installation of psycopg2 in
>>>> */home/ouruser/.local/lib/python3.6/site-packages/psycopg2*
>>>>
>>>> I'm not sure about the user running the process, but I think it isn't
>>>> root. I'll have to check that with the colleague chiefly wrestling with
>>>> this migration.
>>>>
>>>> Yes, we're going to move to a newer version. In fact we started on a
>>>> newer version but ran into this problem. We're now on 3.6 because we were
>>>> checking if the problem would persist since 3.6 was the default python3 on
>>>> the machine.
>>>>
>>>> It's interesting that this is an issue in particular with psycopg2.
>>>>
>>>> On Thursday, March 31, 2022 at 2:21:42 PM UTC+2 Jim S wrote:
>>>>
>>>>> When I've run into similar situations on Ubuntu the resolution was to
>>>>> install the package using sudo. If you just pip installed the package
>>>>> under your user then I believe it is stored in
>>>>> .local/lib/python3.x/site-packages in the user home directory.
>>>>>
>>>>> This would explain why it works when you run it interactively. What
>>>>> user is running your uwsgi process?
>>>>>
>>>>> Also, if possible I'd move to a newer version of python3. Python 3.6
>>>>> is end-of-life as of 12/23/2021
>>>>>
>>>>> -Jim
>>>>>
>>>>>
>>>>> On Thursday, March 31, 2022 at 6:24:32 AM UTC-5 [email protected]
>>>>> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Trying to setup web2py, python3 centos 7, nginx, uwsgi.
>>>>>>
>>>>>> The application is already running on centos 7 with python 2.7.
>>>>>>
>>>>>> With python 3.6 I get the following error:
>>>>>>
>>>>>> class 'RuntimeError'> Failure to connect, tried 5 times:
>>>>>> Traceback (most recent call last):
>>>>>> File "/opt/web2py/gluon/packages/dal/pydal/base.py", line 514, in
>>>>>> __init__
>>>>>> self._adapter = adapter(**kwargs)
>>>>>> File "/opt/web2py/gluon/packages/dal/pydal/adapters/postgres.py",
>>>>>> line 28, in __call__
>>>>>> return AdapterMeta.__call__(cls, *args, **kwargs)
>>>>>> File "/opt/web2py/gluon/packages/dal/pydal/adapters/__init__.py",
>>>>>> line 41, in __call__
>>>>>> obj = super(AdapterMeta, cls).__call__(*args, **kwargs)
>>>>>> File "/opt/web2py/gluon/packages/dal/pydal/adapters/postgres.py",
>>>>>> line 67, in __init__
>>>>>> after_connection,
>>>>>> File "/opt/web2py/gluon/packages/dal/pydal/adapters/base.py", line
>>>>>> 424, in __init__
>>>>>> super(SQLAdapter, self).__init__(*args, **kwargs)
>>>>>> File "/opt/web2py/gluon/packages/dal/pydal/adapters/base.py", line
>>>>>> 85, in __init__
>>>>>> self.find_driver()
>>>>>> File "/opt/web2py/gluon/packages/dal/pydal/adapters/base.py", line
>>>>>> 134, in find_driver
>>>>>> "No driver of supported ones %s is available" % str(self.drivers)
>>>>>> RuntimeError: No driver of supported ones ('psycopg2',) is available
>>>>>>
>>>>>> This only occurs when running the application through uwsgi, but not
>>>>>> when I run the web2py application directly through:
>>>>>> *> python3 web2py.py*
>>>>>>
>>>>>> I also tried importing psycopg2 in the welcome app and got the
>>>>>> following error:
>>>>>> File "/opt/web2py/gluon/custom_import.py", line 78, in
>>>>>> custom_importer
>>>>>> result = sys.modules[modules_prefix]
>>>>>> KeyError: 'applications.welcome.modules.psycopg2'
>>>>>>
>>>>>> *Any clue as to what might be the problem? Apparently python is
>>>>>> unable to locate the psycopg2 app when ran via uwsgi.*
>>>>>>
>>>>>> *I'm not sure if this is enough information or what other details I
>>>>>> should provide.*
>>>>>>
>>>>>
--
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].
To view this discussion on the web visit
https://groups.google.com/d/msgid/web2py/2fffeec0-8de9-40be-8e35-18011e458415n%40googlegroups.com.