Hi rama, first of all, note that the shell.py fix will resolve only the 'cosmethic' problem of the help command (and "copyright", "credits" , "license" commands) that doesn't work in the interactive shell. But it will not change the import problem in any way.
According to the manual, if you run web2py *from source* you can import from it any python module that is in the PYTHONPATH (sys.path) - which is automatically changed by web2py in order to include also web2py/site-packages (globally) and web2py/application/yourapp/modules (inside yourapp). The last one is preferred if you are planning to distribute the app or you are experimenting with different versions of the same module. It also has higher priority and can even be accessed by other apps as web2py/application/anotherapp/modules. If you run web2py *from the compiled binary*, any system-wide folder will be ignored - only what's down the web2py folder will be available. Modules can be placed on the folders: web2py, web2py/site-packages (globally for all the apps) and web2py/application/yourapp/modules (inside yourapp). You can check it by yourself with the interactive shell and the simple helloworld.py module. What's different and problematic in the 'running from binary' is that you cannot use pip (or similar) for installing modules inside. You instead have to pip-install them on a full system (that has python of the same version of the binary one) and manually copy the related files inside the binary folders. For complex module like pandas, you also have to copy all the files for the related pre-requisites - and possibly test them one by one. Unfortunately, this could fail - expecially if the modules have binary files. In this case, the last resort is to try to compile the binary version by yourself from a working web2py source - following the instructions on my repository and specifying your additional needed modules. Maybe PyInstaller will play the module dependency game better than you ;-) I've also copied these advices on this howto page <https://github.com/nicozanf/web2py-pyinstaller/blob/master/HOWTO-modules.md> for future reference - feel free to correct me if I was wrong somewhere! Cheers, Nico Il giorno lun 29 apr 2019 alle ore 04:24 rāma <ranjeev...@gmail.com> ha scritto: > Hi Nico, > > Thank you for the insights. I am actually importing a number of modules > within the controllers fyi, not only via shell. > > Would patching shell.py fix the behaviour application wide? > > Do you suggest I pip install into site-packages again instead of copying > from my source version? I suspect that it's not going to fix it. > > Folder structure: > web2py > |_site-packages <- here's where my modules are > > I am trying to package and bundle the whole web2py for work as an app > solution and for test release soon. > Your experimental binaries would definitely help me to do early test with > users while waiting for the official binaries. I could do some quick > patches on web2py if required too, please advise how. > > Best, > rama > > On Monday, 29 April 2019 05:30:55 UTC+8, Nico Zanferrari wrote: >> >> I've found why the help command (and "copyright", "credits" , >> "license") it's missing. It's due to the fact that PyInstaller replaces >> the original python module 'site' with a fake one >> <https://github.com/pyinstaller/pyinstaller/blob/develop/PyInstaller/fake-modules/site.py> >> that contains this comment: >> >> >> "This is a fake 'site' module available in default Python Library. >> >> The real 'site' does some magic to find paths to other possible >> Python modules. We do not want this behaviour for frozen applications. >> >> Fake 'site' makes PyInstaller to work with distutils and to work inside >> virtualenv environment." >> >> It's possible to change this behaviour on gluon/shell.py by adding the >> missing code - I'm setting up a PR for this ;-) >> >> Nico >> >> >> Il giorno dom 28 apr 2019 alle ore 19:45 Nico Zanferrari < >> nico...@gmail.com> ha scritto: >> >>> Hi rāma, >>> >>> in fact we are both wrong and the console is working fine! >>> I've tested it with a simple module (the simplest one, helloword.py , >>> see >>> https://stackoverflow.com/questions/15746675/how-to-write-a-python-module-package) >>> and it can be regularly imported if it's placed on the main folder or on >>> the site-packages one. So, it seems that your problem is strictly related >>> to copying the pandas module. >>> >>> But indeed the interactive console is not so perfect. It's somehow >>> missing the help command (and "copyright", "credits" , "license"), and this >>> happens with PyInstaller on PY2/PY3 with Windows and Mac even with the >>> simple 2-lines program: >>> >>> import code >>> code.interact() >>> >>> Nico >>> >>> Il giorno sab 27 apr 2019 alle ore 13:45 rāma <ranj...@gmail.com> ha >>> scritto: >>> >>>> Any quick fix will be appreciated though. >>>> >>>> On Friday, 26 April 2019 15:30:57 UTC+8, Massimo Di Pierro wrote: >>>>> >>>>> Yes. The plan is to provide the following executable from the official >>>>> web page: >>>>> >>>>> OS web2py for py2.7, web2py for py3.7, web3py for py3.7 (WIP) >>>>> WINDOWS web2py for py2.7, web2py for py3.7, web3py for py3.7 (WIP) >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Thursday, 25 April 2019 22:02:37 UTC-7, rāma wrote: >>>>>> >>>>>> This is wonderful. And, something I would love to be adopted to the >>>>>> official repo. >>>>>> >>>>>> Thanks for this! >>>>>> >>>>>> On Sunday, 3 March 2019 19:24:38 UTC+8, Nico Zanferrari wrote: >>>>>>> >>>>>>> Good morning! >>>>>>> >>>>>>> I'm proud to say that I've succeeded in building the Windows 64 bit >>>>>>> binary with python 3.7.2 using pyinstaller ! Grab it from >>>>>>> https://github.com/nicozanf/web2py-pyinstaller >>>>>>> >>>>>>> There are some little gothas, but it seems to work fine: >>>>>>> - in the console I've got many errors like >>>>>>> 'ERROR:Rocket.Errors.Thread-2:Tried to send "500 Server Error" to client >>>>>>> but received socket error'. They disappear as soon as I've disabled IPv6 >>>>>>> and rebooted. There are users that report also to fix similar problems >>>>>>> by >>>>>>> adding the hostname on the hosts file >>>>>>> - psycopg2 is placed in a folder by itself, instead than in the root >>>>>>> folder >>>>>>> - in the currently official binary build (with pyhton 2.7) there are >>>>>>> also two binaries: web2py_no_console.exe and web2py_on_gevent.exe. They >>>>>>> don't run correctly, and don't seem to be so important for me so I've >>>>>>> decided to skip their generation. >>>>>>> - Macintosh compatibility is needed, but I cannot work on it >>>>>>> >>>>>>> Please, help with testing it! I'll make a PR on the official web2py >>>>>>> repository after some feedback. >>>>>>> >>>>>>> Cheers, >>>>>>> Nico >>>>>>> >>>>>>> Il giorno mer 27 feb 2019 alle ore 12:03 Nico Zanferrari < >>>>>>> nico...@gmail.com> ha scritto: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> this is a big problem also from my point of view and I've already >>>>>>>> opened issue 2027 <https://github.com/web2py/web2py/issues/2027> . >>>>>>>> However it's not so easy to achieve this goal, because you've to >>>>>>>> switch to >>>>>>>> 3.x + go 64 bit + change the *freezer* program (py2exe >>>>>>>> and bbfreeze do not work with python >= 3.5). I'm playing with >>>>>>>> pyinstaller, >>>>>>>> but I'm not promising anything. And also a binary Mac version is >>>>>>>> needed (I >>>>>>>> only have a Win box), plus testing everything. >>>>>>>> >>>>>>>> Cheers, >>>>>>>> Nico >>>>>>>> >>>>>>>> Il giorno mer 27 feb 2019 alle ore 11:45 elisha bere < >>>>>>>> elish...@gmail.com> ha scritto: >>>>>>>> >>>>>>>>> Hie, >>>>>>>>> >>>>>>>>> Is it possible to change from 2.7 to 3.x in my web2py app >>>>>>>>> >>>>>>>>> On 17 Feb 2019 20:57, "Jitun John" <jitu...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> "It requires Python 2.6 (no more supported), Python 2.7 (stable) >>>>>>>>>> or Python 3.5+ (*recommended for new projects*) already >>>>>>>>>> installed on your system. >>>>>>>>>> There are also *binary packages for Windows* and Mac OS X.* They >>>>>>>>>> include the Python 2.7 interpreter* so you do not need to have >>>>>>>>>> it pre-installed." >>>>>>>>>> >>>>>>>>>> Sorry for my ignorance, I am assuming "Python 2.7 interpreter" as >>>>>>>>>> "python27.dll" and "pywintypes27.dll" files. >>>>>>>>>> >>>>>>>>>> I recently moved my app from 2.x to 3.x using PyCharm IDE and the >>>>>>>>>> app works fine when using IDE on 3.7 python. >>>>>>>>>> But when I try to compile it to .exe (using .iss file + >>>>>>>>>> hstart.exe), I cant use the existing web2py_win.zip file. >>>>>>>>>> >>>>>>>>>> Gives me "<type 'exceptions.ValueError'> unsupported pickle >>>>>>>>>> protocol: 3" >>>>>>>>>> >>>>>>>>>> As we are recommending new projects on 3.x, Is it possible for >>>>>>>>>> the next version to have a 3.x interpreter ? >>>>>>>>>> or if we have a workaround, I am happy to try it. >>>>>>>>>> >>>>>>>>>> Thanks. >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> 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 web...@googlegroups.com. >>>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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 web...@googlegroups.com. >>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>> >>>>>>>> -- >>>> 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 web...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- > 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. > -- 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.