pip install urllib3_secure_extra

in my virtual env solved the problem.

Thank you Tom for pointing to the solution, I had missed that thread.


On October 27, 2023 at 16:59:18, Tom Clerckx (tcler...@gmail.com) wrote:

I think this is the same issue as was discussed a few months ago:
See this thread:
https://groups.google.com/g/web2py/c/xYVWpDGLuzY/m/t9sBabWOAgAJ

Seems some issue between the custom importer and the urllib3 module.
Can you  try once more, but also explicitly pip install *urllib3_secure_extra
*in your virtual env?




On Thursday, October 26, 2023 at 7:33:25 AM UTC+2 Massimo Di Pierro wrote:

> Hello Alex,
>
> thank for reporting this problem. Is it only occurring with web2py 2.25.1?
>
> On Monday, 23 October 2023 at 14:05:15 UTC-7 alex wrote:
>
>> Hi,
>>
>> I am running web2py Version 2.25.1-stable in virtualenv (python 3.9.5, it
>> happens also in python 3.10.10)
>>
>> After activating the virtualenv, I installed requests
>>
>> $ pip install request
>> $ pip show requests
>> Name: requests
>> Version: 2.31.0
>> Summary: Python HTTP for Humans.
>> Home-page: https://requests.readthedocs.io
>> Author: Kenneth Reitz
>> Author-email: m...@kennethreitz.org
>> License: Apache 2.0
>> Location:
>> /Users/z/dev/web2py/.direnv/python-3.9/lib/python3.9/site-packages
>> Requires: certifi, charset-normalizer, idna, urllib3
>> Required-by:
>>
>> Importing requests from bpython gives no errors.
>>
>> Importing requests in myapp gives an error.
>> I also tried with other external libraries, some of them do work, some
>> others cannot be imported.
>>
>> About this case, I have tried the following:
>>
>> In "web2py/applications/myapp/models/0.py":
>>
>> # - - - - - - - - - - - - - - -
>>
>> # added the virtualenv path to sys.path
>>
>> site_package_path =
>> "/Users/z/dev/web2py/.direnv/python-3.9/lib/python3.9/site-packages"
>>
>> if site_package_path not in sys.path:
>>     sys.path.append(site_package_path)
>>
>> try:
>>     import requests
>> except:
>>     raise Exception('import error: "requests" not found')
>>
>>
>> # - - - - - - - - - - - - - - -
>>
>> I am running web2py with:
>>
>> $python web2py.py -a 'pwd'
>>
>> Error log:
>>
>> # - - - - - - - - - - - - - - -
>> Ticket ID
>> 127.0.0.1.2023-10-24.05-48-51.a557dcfb-55a3-4063-ac27-879cad8fe799
>>
>> <class 'Exception'> import error: "requests" not found
>> Version
>> web2py™ Version 2.25.1-stable+timestamp.2023.10.08.18.44.43
>> Python Python 3.9.5: /Users/z/dev/web2py/.direnv/python-3.9/bin/python
>> (prefix: /Users/z/dev/web2py/.direnv/python-3.9)
>>
>> ...
>>
>> Traceback (most recent call last):
>>   File "/Users/z/dev/web2py/gluon/custom_import.py", line 78, in
>> custom_importer
>>     result = sys.modules[modules_prefix]
>> KeyError: 'applications.wh.modules.requests'
>>
>> During handling of the above exception, another exception occurred:
>>
>> Traceback (most recent call last):
>>   File "/Users/z/dev/web2py/applications/wh/models/0.py", line 29, in
>> <module>
>>     import requests
>>   File "/Users/z/dev/web2py/gluon/custom_import.py", line 80, in
>> custom_importer
>>     raise ImportError("No module named %s" % modules_prefix)
>> ImportError: No module named applications.wh.modules.requests
>>
>> During handling of the above exception, another exception occurred:
>>
>> Traceback (most recent call last):
>>   File "/Users/z/dev/web2py/gluon/restricted.py", line 219, in restricted
>>     exec(ccode, environment)
>>   File "/Users/z/dev/web2py/applications/wh/models/0.py", line 31, in
>> <module>
>>     raise Exception('import error: "requests" not found')
>> Exception: import error: "requests" not found
>> Error snapshot help
>> Exception(import error: "requests" not found)
>>
>> inspect attributes
>>
>> Exception instance attributes
>> __cause__ None
>> __class__ <class 'Exception'>
>> __context__ ImportError('No module named
>> applications.wh.modules.requests')
>> __delattr__ <method-wrapper '__delattr__' of Exception object>
>> __dict__ {}
>> __dir__ <built-in method __dir__ of Exception object>
>> __doc__ 'Common base class for all non-exit exceptions.'
>> __eq__ <method-wrapper '__eq__' of Exception object>
>> __format__ <built-in method __format__ of Exception object>
>> __ge__ <method-wrapper '__ge__' of Exception object>
>> __getattribute__ <method-wrapper '__getattribute__' of Exception object>
>> __gt__ <method-wrapper '__gt__' of Exception object>
>> __hash__ <method-wrapper '__hash__' of Exception object>
>> __init__ <method-wrapper '__init__' of Exception object>
>> __init_subclass__ <built-in method __init_subclass__ of type object>
>> __le__ <method-wrapper '__le__' of Exception object>
>> __lt__ <method-wrapper '__lt__' of Exception object>
>> __ne__ <method-wrapper '__ne__' of Exception object>
>> __new__ <built-in method __new__ of type object>
>> __reduce__ <built-in method __reduce__ of Exception object>
>> __reduce_ex__ <built-in method __reduce_ex__ of Exception object>
>> __repr__ <method-wrapper '__repr__' of Exception object>
>> __setattr__ <method-wrapper '__setattr__' of Exception object>
>> __setstate__ <built-in method __setstate__ of Exception object>
>> __sizeof__ <built-in method __sizeof__ of Exception object>
>> __str__ <method-wrapper '__str__' of Exception object>
>> __subclasshook__ <built-in method __subclasshook__ of type object>
>> __suppress_context__ False
>> __traceback__ <traceback object>
>> args ('import error: "requests" not found',)
>> with_traceback <built-in method with_traceback of Exception object>
>> Frames
>> File /Users/z/dev/web2py/gluon/restricted.py in restricted at line 219
>> code arguments variables
>>
>> File /Users/z/dev/web2py/applications/wh/models/0.py in <module> at line
>> 31 code arguments variables
>>
>> Function argument list
>> ()
>>
>> Context locals
>>
>> ...
>>
>>
>> <function embed64>
>> iteritems :
>> <function <lambda>>
>> local_import :
>> <function build_environment.<locals>.<lambda>>
>> myconf :
>> {'app': {'name': 'WH', 'author': 'Your Name <you...ormstyle':
>> 'bootstrap3_inline', 'separator': ''}}
>> redirect :
>> <function redirect>
>> reduce :
>> <built-in function reduce>
>> request :
>> <Storage {'env': <Storage {'SERVER_SOFTWARE': 'R...050b77f0>,
>> '_custom_import_track_changes': True}>
>> response :
>> <Storage {'status': 200, 'headers': {'X-Powered-...ndex/\\w+\\.py$'],
>> 'view': 'default/index.html'}>
>> session :
>> <Storage {}>
>> site_package_path :
>> "'/Users/z/dev/web2py/.direnv/python-3.9/lib/python3.9/site-packages'"
>> sys :
>> <module 'sys' (built-in)>
>> to_bytes :
>> <function to_bytes>
>> to_native :
>> <function to_native>
>> track_changes :
>> <function track_changes>
>> xmlescape :
>> <function xmlescape>
>> xrange :
>> <class 'range'>
>> session
>> response
>> body :
>> <_io.StringIO object at 0x10509de50>
>> cookies :
>> session_id_wh :
>> 127.0.0.1-3599de20-98fe-4a6f-a572-aa7d12f28231
>> comment :
>> domain :
>> expires :
>> httponly :
>> max-age :
>> path :
>> /
>> samesite :
>> secure :
>> version :
>> delimiters :
>> {{
>> }}
>> files :
>> flash :
>> form_label_separator :
>> :
>> formstyle :
>> table3cols
>> generic_patterns :
>> *
>> headers :
>> X-Powered-By :
>> web2py
>> menu :
>> meta :
>> models_to_run :
>> ^\w+\.py$
>> ^default/\w+\.py$
>> ^default/index/\w+\.py$
>> postprocessing :
>> session_client :
>> 127.0.0.1
>> session_cookie_compression_level :
>> None
>> session_cookie_expires :
>> None
>> session_data_name :
>> session_data_wh
>> session_file :
>> None
>> session_filename :
>>
>> /Users/z/dev/web2py/applications/wh/sessions/127.0.0.1-3599de20-98fe-4a6f-a572-aa7d12f28231
>> session_hash :
>> af8c96c5e9a768088deb3555c108286d
>> session_id :
>> 127.0.0.1-3599de20-98fe-4a6f-a572-aa7d12f28231
>> session_id_name :
>> session_id_wh
>> session_masterapp :
>> wh
>> session_new :
>> True
>> session_storage_type :
>> file
>> status :
>> 200
>> view :
>> default/index.html
>> In file: /Users/z/dev/web2py/applications/wh/models/0.py
>> 1.
>> <code object <module> at 0x103f03a80, file
>> "/Users/z/dev/web2py/applications/wh/models/0.py", line 1>
>>
>> # - - - - - - - - - - - - - - -
>>
>> Any hints?
>>
>> Thank you
>>
>> --
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.
To view this discussion on the web visit
https://groups.google.com/d/msgid/web2py/7f3cddbd-0dd2-4f69-a1db-5296cf62a15bn%40googlegroups.com
<https://groups.google.com/d/msgid/web2py/7f3cddbd-0dd2-4f69-a1db-5296cf62a15bn%40googlegroups.com?utm_medium=email&utm_source=footer>
.

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/CAKC%3DaX5bEEo_RGSgPUdkyXyePmS1djbgp4ieEcf0A4eaAnrQvw%40mail.gmail.com.

Reply via email to