Hi Nico,

Thanks for your inputs.

I've actually run windows py2.7 binary with modules within site-packages, 
and pip can be leveraged by setting your target folder like this: pip 
install -t site-packages <package_name>. Just for the benefit of other 
readers. It's just that pandas didn't quite work for me in py2.7 and ported 
my code to python 3.5+.

It is convenient to distribute your app and whole web2py as a binary or as 
a client for desktop users. If we were to package with pynsist with 
webview: https://github.com/takluyver/pynsist/tree/master/examples/pywebview it 
can act *like *a standalone binary app on Windows or Mac masking the local 
web address. I also see a value in this as a way forward to have python 
based program running like a program locally on a client rather in the 
cloud wherever necessary cloud sync can be employed. I have not been 
successful with pynsist though.

Best,
rama

On Monday, 29 April 2019 20:49:49 UTC+8, Nico Zanferrari wrote:
>
> 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 <ranj...@gmail.com 
> <javascript:>> 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 web...@googlegroups.com <javascript:>.
>> 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.

Reply via email to