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.