I had the same issue recently, but on windows. I did a workaround by importing requests before importing gluon in web2py.py. Looks like something is broken, after gluon is imported.
On Mon, May 29, 2023 at 7:13 PM Massimiliano <mbelle...@gmail.com> wrote: > Just for the records: > > clean python 3.7.16 w/o requests: > pyenv local 3.7.16 > > pip install pipenv > pipenv install requests > max@d11:~/aaa/web2py$ pipenv shell > Launching subshell in virtual environment... > max@d11:~/aaa/web2py$ . > /home/max/.local/share/virtualenvs/web2py-ifCUjADX/bin/activate > (web2py) max@d11:~/aaa/web2py$ python > Python 3.7.16 (default, May 28 2023, 09:25:55) > [GCC 10.2.1 20210110] on linux > Type "help", "copyright", "credits" or "license" for more information. > >>> import requests > >>> > > (web2py) max@d11:~/aaa/web2py$ ./web2py.py -S welcome > web2py Web Framework > Created by Massimo Di Pierro, Copyright 2007-2023 > Version 2.24.1-stable+timestamp.2023.03.23.05.07.17 > Database drivers available: sqlite3, imaplib, pymysql > WARNING:web2py:import IPython error; use default python shell > Python 3.7.16 (default, May 28 2023, 09:25:55) > [GCC 10.2.1 20210110] on linux > Type "help", "copyright", "credits" or "license" for more information. > (InteractiveConsole) > >>> import requests > Traceback (most recent call last): > File "/home/max/aaa/web2py/gluon/custom_import.py", line 78, in > custom_importer > result = sys.modules[modules_prefix] > KeyError: 'applications.welcome.modules.requests' > > It seems that pipenv introduces some oddity that broke the custom_import > in web2py. > > > > Il giorno lun 29 mag 2023 alle ore 15:29 Massimiliano <mbelle...@gmail.com> > ha scritto: > >> Tried right now. >> >> extracting: web2py/applications/__init__.py >> extracting: web2py/site-packages/__init__.py >> max@d11:~/aaa$ cd web2py/ >> max@d11:~/aaa/web2py$ pyenv local testvenv >> (testvenv) max@d11:~/aaa/web2py$ ./web2py.py -S welcome >> web2py Web Framework >> Created by Massimo Di Pierro, Copyright 2007-2023 >> Version 2.24.1-stable+timestamp.2023.03.23.05.07.17 >> Database drivers available: sqlite3, imaplib, pymysql >> WARNING:web2py:import IPython error; use default python shell >> Python 3.7.16 (default, May 28 2023, 09:25:55) >> [GCC 10.2.1 20210110] on linux >> Type "help", "copyright", "credits" or "license" for more information. >> (InteractiveConsole) >> >>> import requests >> >>> >> >> >> >> Il giorno lun 29 mag 2023 alle ore 15:21 vald...@gmail.com < >> valde...@gmail.com> ha scritto: >> >>> Interesting >>> I had actually put together a little script to setup my environment. The >>> difference is that I download the source from the website instead of >>> cloning from Github. Wondering if that could be the cause. Here's my entire >>> script: >>> #!/usr/bin/env bash >>> >>> FILE=web2py/web2py.py >>> echo >>> echo "Checking for $FILE..." >>> if [ -f "$FILE" ]; >>> then >>> echo "..." >>> else >>> echo "File does not exist." >>> wget https://mdipierro.pythonanywhere.com/examples/static/web2py_src.zip >>> unzip web2py_src.zip >>> rm web2py_src.zip 2>/dev/null \ >>> && echo "Deleted web2py_src.zip" \ >>> || echo "Unable to delete as web2py_src.zip does not exist" >>> fi >>> CONFIGFILE=web2py/applications/init/private/appconfig.ini >>> echo >>> echo "Checking for $CONFIGFILE..." >>> if [ -f "$CONFIGFILE" ]; >>> then >>> echo "..." >>> else >>> echo "File does not exist. Copying from welcome app..." >>> mkdir web2py/applications/init/private >>> cp web2py/applications/welcome/private/appconfig.ini >>> web2py/applications/init/private >>> sleep 2 >>> fi >>> if [ -f "$CONFIGFILE" ]; >>> then >>> echo "Starting server..." >>> pipenv run python web2py/web2py.py -a pwd -p 7000 >>> else >>> echo "$CONFIGFILE file does not exist." >>> >>> >>> >>> >>> On Sunday, May 28, 2023 at 3:04:33 AM UTC-5 Massimiliano wrote: >>> >>>> Sorry it's not clear that only the apt stuffs are done as root. >>>> >>>> Installing pyenv >>>> curl https://pyenv.run | bash >>>> >>>> and from: >>>> >>>> pyenv install 3.7.16 >>>> >>>> is all done as normal user. >>>> >>>> >>>> Il giorno dom 28 mag 2023 alle ore 09:55 Massimiliano < >>>> mbel...@gmail.com> ha scritto: >>>> >>>>> What I can say i that with pyenv and virtualenv created in pyenv it >>>>> works. >>>>> >>>>> Just tried on a new vm with debian 11 >>>>> >>>>> Steps: >>>>> >>>>> apt update >>>>> apt install curl git >>>>> >>>>> install pyenv: >>>>> >>>>> curl https://pyenv.run | bash >>>>> >>>>> setup the build environment to build python version, from pyenv docs >>>>> <https://github.com/pyenv/pyenv/wiki#suggested-build-environment>: >>>>> >>>>> apt install build-essential libssl-dev zlib1g-dev \ >>>>> libbz2-dev libreadline-dev libsqlite3-dev curl \ >>>>> libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev >>>>> liblzma-dev >>>>> >>>>> Installing python 3.7.16: >>>>> >>>>> pyenv install 3.7.16 >>>>> >>>>> wait for the build process... >>>>> >>>>> adding this in .profile >>>>> >>>>> export PYENV_ROOT="$HOME/.pyenv" >>>>> command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH" >>>>> eval "$(pyenv init -)" >>>>> eval "$(pyenv virtualenv-init -)" >>>>> >>>>> >>>>> restart the shell or logout... >>>>> >>>>> create an virtual env based on 3.7.16: >>>>> >>>>> pyenv virtualenv 3.7.16 testvenv >>>>> >>>>> getting web2py: >>>>> >>>>> git clone https://github.com/web2py/web2py.git >>>>> cd web2py/ >>>>> git submodule update --init --recursive >>>>> >>>>> Activate the venv: >>>>> >>>>> pyenv local testvenv >>>>> pip install requests >>>>> >>>>> (testvenv) max@d11:~/web2py$ ./web2py.py -S welcome >>>>> web2py Web Framework >>>>> Created by Massimo Di Pierro, Copyright 2007-2023 >>>>> Version 2.24.1-stable+timestamp.2023.03.22.21.39.14 >>>>> Database drivers available: sqlite3, imaplib, pymysql >>>>> WARNING:web2py:import IPython error; use default python shell >>>>> Python 3.7.16 (default, May 28 2023, 09:25:55) >>>>> [GCC 10.2.1 20210110] on linux >>>>> Type "help", "copyright", "credits" or "license" for more information. >>>>> (InteractiveConsole) >>>>> >>> import requests >>>>> >>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> Il giorno dom 28 mag 2023 alle ore 01:25 vald...@gmail.com < >>>>> vald...@gmail.com> ha scritto: >>>>> >>>>>> I'm using pipenv to run the virtual environment. >>>>>> >>>>>> So I install pyenv first and then python 3.7 with it and set it to >>>>>> the default. >>>>>> >>>>>> Then I install pipenv so that it uses the python 3.7 as its default. >>>>>> >>>>>> Then I activate the virtual environment with *pipenv shell* and >>>>>> then run *python web2py/web2py.py -a pwd -p 7000*. >>>>>> >>>>>> To get the web2py shell, I run *python web2py/web2py.py -S init* >>>>>> >>>>>> I pretty much got the same results -- see below >>>>>> >>>>>> I actually have. I'm running a virtual environment with Pipenv. >>>>>> >>>>>> Noting essentially the same results. >>>>>> >>>>>> (t2d) popos@popos2004:~/code/t2d >>>>>> $ python web2py/web2py.py -S init >>>>>> web2py Web Framework >>>>>> Created by Massimo Di Pierro, Copyright 2007-2023 >>>>>> Version 2.22.5-stable+timestamp.2022.06.04.18.13.51 >>>>>> Database drivers available: sqlite3, imaplib, pymysql >>>>>> WARNING:web2py:import IPython error; use default python shell >>>>>> Python 3.7.12 (default, Feb 11 2023, 17:19:18) >>>>>> [GCC 9.3.0] on linux >>>>>> Type "help", "copyright", "credits" or "license" for more information. >>>>>> (InteractiveConsole) >>>>>> >>> import sys >>>>>> >>> print(sys.path) >>>>>> ['', '/home/popos/code/t2d/web2py/site-packages', >>>>>> '/home/popos/code/t2d/web2py', >>>>>> '/home/popos/code/t2d/web2py/gluon/packages/yatl', >>>>>> '/home/popos/code/t2d/web2py/gluon/packages/dal', >>>>>> '/home/popos/.pyenv/versions/3.7.12/lib/python37.zip', >>>>>> '/home/popos/.pyenv/versions/3.7.12/lib/python3.7', >>>>>> '/home/popos/.pyenv/versions/3.7.12/lib/python3.7/lib-dynload', >>>>>> '/home/popos/.local/share/virtualenvs/t2d-ueLDNtkj/lib/python3.7/site-packages'] >>>>>> >>> >>>>>> now exiting InteractiveConsole... >>>>>> >>>>>> The site-packages folder has the requests module files in it. >>>>>> >>>>>> Able to see it in plain python, but not in web2py shell or the web2py >>>>>> app. >>>>>> >>>>>> >>>>>> On Saturday, May 27, 2023 at 11:59:18 AM UTC-5 Massimiliano wrote: >>>>>> >>>>>> Yes it's a virtualenv also mine. >>>>>> How do you start web2py and how do you set your virtual env for >>>>>> web2py? >>>>>> >>>>>> pyenv local yourenv >>>>>> or what? >>>>>> >>>>>> Another thing. web2py.py has #!/usr/bin/env python shebang so it >>>>>> knows what python to use. >>>>>> >>>>>> Have you tried to launch >>>>>> ./web2py.py -S >>>>>> instead of >>>>>> python web2py.py >>>>>> >>>>>> as last test you can try to call web2py with the full path of your >>>>>> virtualenv: >>>>>> >>>>>> <your pyenv path>/.pyenv/versions/<your venv>/bin/python web2py.py -S >>>>>> <yourapp> >>>>>> >>>>>> >>>>>> >>>>>> Il giorno sab 27 mag 2023 alle ore 18:12 Tom Clerckx < >>>>>> tcle...@gmail.com> ha scritto: >>>>>> >>>>>> With pyenv itself it goes OK, it's only when using a pyenv-virtualenv >>>>>> that things fail. >>>>>> I tried on two different machines. >>>>>> >>>>>> Newly created pyenv (3.10.6) >>>>>> Newly created virtualenv >>>>>> Newly unzipped web2py directory (2.24.1) >>>>>> >>>>>> Same result. >>>>>> When launching the web2py-shell in the virtualenv, the import fails. >>>>>> >>>>>> Have you also tried with a virtualenv? >>>>>> >>>>>> Regards, >>>>>> Tom. >>>>>> >>>>>> >>>>>> >>>>>> On Saturday, May 27, 2023 at 2:38:28 PM UTC+2 Massimiliano wrote: >>>>>> >>>>>> I'm also using pyenv and having the same paths order, ma importing >>>>>> requests is working with no problem, on macos and on linux. >>>>>> >>>>>> Have you already tried to get rid of all pyc files and or to >>>>>> uninstall and reinstall requests? >>>>>> >>>>>> Il giorno sab 27 mag 2023 alle ore 14:20 Tom Clerckx < >>>>>> tcle...@gmail.com> ha scritto: >>>>>> >>>>>> See below. In both tests the requests library is in the last element >>>>>> of the path. >>>>>> >>>>>> TEST1, plain python shell - import OK >>>>>> >>>>>> (test) tclerckx@stark:~/temp/test$ python >>>>>> Python 3.10.6 (main, Jan 14 2023, 23:48:13) [GCC 11.3.0] on linux >>>>>> Type "help", "copyright", "credits" or "license" for more information. >>>>>> >>> import requests >>>>>> >>> requests.__file__ >>>>>> >>>>>> '/home/tclerckx/.pyenv/versions/test/lib/python3.10/site-packages/requests/__init__.py' >>>>>> >>> import sys >>>>>> >>> sys.path >>>>>> ['', '/home/tclerckx/.pyenv/versions/3.10.6/lib/python310.zip', >>>>>> '/home/tclerckx/.pyenv/versions/3.10.6/lib/python3.10', >>>>>> '/home/tclerckx/.pyenv/versions/3.10.6/lib/python3.10/lib-dynload', >>>>>> '/home/tclerckx/.pyenv/versions/test/lib/python3.10/site-packages'] >>>>>> >>> >>>>>> >>>>>> TEST2, python web2py shell - import FAILS >>>>>> >>>>>> (test) tclerckx@stark:~/temp/test/web2py$ python web2py.py -S >>>>>> welcome -M >>>>>> web2py Web Framework >>>>>> Created by Massimo Di Pierro, Copyright 2007-2023 >>>>>> Version 2.24.1-stable+timestamp.2023.03.23.05.07.17 >>>>>> Database drivers available: sqlite3, imaplib, pymysql >>>>>> WARNING:web2py:import IPython error; use default python shell >>>>>> Python 3.10.6 (main, Jan 14 2023, 23:48:13) [GCC 11.3.0] on linux >>>>>> Type "help", "copyright", "credits" or "license" for more information. >>>>>> (InteractiveConsole) >>>>>> >>> import requests >>>>>> Traceback (most recent call last): >>>>>> File "/home/tclerckx/temp/test/web2py/gluon/custom_import.py", line >>>>>> 78, in custom_importer >>>>>> result = sys.modules[modules_prefix] >>>>>> KeyError: 'applications.welcome.modules.requests' >>>>>> >>>>>> During handling of the above exception, another exception occurred: >>>>>> >>>>>> Traceback (most recent call last): >>>>>> File "<console>", line 1, in <module> >>>>>> File "/home/tclerckx/temp/test/web2py/gluon/custom_import.py", line >>>>>> 80, in custom_importer >>>>>> raise ImportError("No module named %s" % modules_prefix) >>>>>> ImportError: No module named applications.welcome.modules.requests >>>>>> >>> import sys >>>>>> >>> sys.path >>>>>> ['', '/home/tclerckx/temp/test/web2py/site-packages', >>>>>> '/home/tclerckx/temp/test/web2py', >>>>>> '/home/tclerckx/temp/test/web2py/gluon/packages/yatl', >>>>>> '/home/tclerckx/temp/test/web2py/gluon/packages/dal', >>>>>> '/home/tclerckx/.pyenv/versions/3.10.6/lib/python310.zip', >>>>>> '/home/tclerckx/.pyenv/versions/3.10.6/lib/python3.10', >>>>>> '/home/tclerckx/.pyenv/versions/3.10.6/lib/python3.10/lib-dynload', >>>>>> '/home/tclerckx/.pyenv/versions/test/lib/python3.10/site-packages'] >>>>>> >>> >>>>>> >>>>>> On Saturday, May 27, 2023 at 12:11:19 PM UTC+2 Massimiliano wrote: >>>>>> >>>>>> Maybe one thing you can do is to launch web2py shell and check paths. >>>>>> >>>>>> ./web2py.py -S <your-app-name> >>>>>> >>>>>> import sys >>>>>> print(sys.path) >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> Il giorno ven 26 mag 2023 alle ore 16:02 vald...@gmail.com < >>>>>> vald...@gmail.com> ha scritto: >>>>>> >>>>>> <https://stackoverflow.com/posts/76341290/timeline> >>>>>> >>>>>> Asked this one on SO here >>>>>> <https://stackoverflow.com/questions/76341290/unable-to-import-requests-in-web2py-even-though-requests-is-accessible-directl> >>>>>> as I was just reminded of how much nicer this community tends to be to >>>>>> newb >>>>>> questions. >>>>>> >>>>>> I'm attempting to integrate MSAL which requires the requests module. >>>>>> >>>>>> I'm running python 3.7 on Linux and using pipenv to manage the >>>>>> environment. I'm also using web2py 2.24.1 from source (as in I download >>>>>> the >>>>>> web2py framework via the source button on the web2py website). >>>>>> >>>>>> When I am in pipenv shell and go into the python shell, I can access >>>>>> the requests, however when I try to access it from web2py (running in >>>>>> same >>>>>> shell), I get the "module not found" error. >>>>>> >>>>>> When I check the site-packages folder the requests packages is >>>>>> present. I have checked the pythonpath and seen that the path from the >>>>>> virtual environment is present. >>>>>> >>>>>> When attempting to load the web2py python shell, it gives the same >>>>>> error. >>>>>> >>>>>> I'm probably missing something, but it sometimes appears as if web2py >>>>>> does some code compilation and then uses the compiled stuff and ignores >>>>>> code changes after a certain point. Asking as I have commented out all >>>>>> the >>>>>> code involving the requests module in an effort to get the web2py shell >>>>>> working, but still get the error and now the entire app is not working >>>>>> even >>>>>> on the master branch which was previously working. >>>>>> >>>>>> Not sure what to try next. Any ideas are appreciated. >>>>>> >>>>>> -- >>>>>> 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+un...@googlegroups.com. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/web2py/83b8a4ab-120a-4106-83f2-d37652c23093n%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/web2py/83b8a4ab-120a-4106-83f2-d37652c23093n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Massimiliano >>>>>> >>>>>> -- >>>>>> 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+un...@googlegroups.com. >>>>>> >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/web2py/9e3df18e-403a-4bd2-b42b-8c9028da601fn%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/web2py/9e3df18e-403a-4bd2-b42b-8c9028da601fn%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Massimiliano >>>>>> >>>>>> -- >>>>>> 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+un...@googlegroups.com. >>>>>> >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/web2py/7e1b981a-d2fe-4af2-8e42-57acc4ca1e7cn%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/web2py/7e1b981a-d2fe-4af2-8e42-57acc4ca1e7cn%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Massimiliano >>>>>> >>>>>> >>>>>> -- >>>>>> 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+un...@googlegroups.com. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/web2py/da72c846-1b5a-448f-a51c-32be529a1935n%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/web2py/da72c846-1b5a-448f-a51c-32be529a1935n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> >>>>> >>>>> -- >>>>> Massimiliano >>>>> >>>> >>>> >>>> -- >>>> Massimiliano >>>> >>> -- >>> 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/3c344817-a69f-427b-ac52-4e1b3918cd85n%40googlegroups.com >>> <https://groups.google.com/d/msgid/web2py/3c344817-a69f-427b-ac52-4e1b3918cd85n%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> >> >> -- >> Massimiliano >> > > > -- > Massimiliano > > -- > 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/CANPTPxK2oeg_5KxvEjzVoYU_xo0LLJKZWZGvP5Mr%2BoGVcSHrYQ%40mail.gmail.com > <https://groups.google.com/d/msgid/web2py/CANPTPxK2oeg_5KxvEjzVoYU_xo0LLJKZWZGvP5Mr%2BoGVcSHrYQ%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- Saifuddin, --------------------------------------------- Reach me @ +91 9850815274 --------------------------------------------- "The secret to find something is knowing where it is" -- 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/CAPoFxzsMjKmZXHrPAMFF-kkSRjB5q1-jVwESpTgFSGr5ZWv6BQ%40mail.gmail.com.