From: Fredrik C. <fre...@gm...> - 2007-11-20 11:52:07
|
Hi, I've created a Python application and distribute it using py2exe. As I want users to be able to write custom scripts using it's libs without having to install Python I've created a small script (that I create an exe file for) that can run scripts using the freezed Python environment. 8<------ import imp,sys pyscript = sys.argv.pop(1) imp.load_source( '__main__',pyscript ) ----->8 It works quite well but I would like it behave exactly as the normal python interpreter so it allows interactive console, respect arguments passed to give the same error messages etc. Does anyone know how I can do this with py2exe? Thanks for your great work! Regards, Fredrik |
From: Jimmy R. <ji...@re...> - 2007-11-20 15:55:31
|
On 11/20/07 3:52 AM, "Fredrik Corneliusson" <fre...@gm...> wrote: > I've created a Python application and distribute it using py2exe. > As I want users to be able to write custom scripts using it's libs > without having to install Python I've created a small script (that I > create an exe file for) that can run scripts using the freezed Python > environment. > > 8<------ > import imp,sys > pyscript = sys.argv.pop(1) > imp.load_source( '__main__',pyscript ) > ----->8 > > It works quite well but I would like it behave exactly as the normal > python interpreter so it allows interactive console, respect arguments > passed to give the same error messages etc. > > Does anyone know how I can do this with py2exe? It sounds like you're looking to recreate part, if not all, of Movable Python. That's a commercial offering from our friend Fuzzy (Michael Foord) - you can find it at http://www.voidspace.org.uk/python/movpy/. You might see if its price/features meet your needs. If not, I know Fuzzy posted some info to this list when he was creating Movable Python, but I can't remember how much. Google might help there. If you just want to expand the main script you've started above with the interactive interpreter, then http://docs.python.org/lib/console-objects.html will help. You'll also want to indicate to py2exe any modules/packages that you think your users might want to use to make sure they are included. You can modify sys.argv (or assign an entirely new list to it) if you want to emulate arguments for scripts. You'll have to do some experimentation to see what sys.argv looks like in a script run by python.exe vs. py2exe + your pyscript code above and then compensate for the differences. Others may have better ideas for some or all of this... Regards, Jimmy |
From: Fredrik C. <fre...@gm...> - 2007-11-27 13:11:11
|
Hi Jimmy and Ralf, Thanks for your help! Sorry for not getting back sooner. Regarding Movable Python, the py2exe variant is already in production and MP is probably overkill for this just feature. Also it woks well now and scripts that depend on libs not present in the freezed version can just keep them in the same dir as the script to be able to use them. Passing arguments to the users script is also no problem (it's the "sys.argv.pop(1)" that takes care of this). So it's more for cosmetics and "user friendliness" sake that I want them to be able to do a "freezedpython.exe -h" and get the same response as when doing "python.exe -h". But if it's not possible in a easy way it's not the end of the world and I can keep it as it is. Thanks again, Fredrik On Nov 20, 2007 4:46 PM, Jimmy Retzlaff <ji...@re...> wrote: > On 11/20/07 3:52 AM, "Fredrik Corneliusson" <fre...@gm...> > wrote: > > > > I've created a Python application and distribute it using py2exe. > > As I want users to be able to write custom scripts using it's libs > > without having to install Python I've created a small script (that I > > create an exe file for) that can run scripts using the freezed Python > > environment. > > > > 8<------ > > import imp,sys > > pyscript = sys.argv.pop(1) > > imp.load_source( '__main__',pyscript ) > > ----->8 > > > > It works quite well but I would like it behave exactly as the normal > > python interpreter so it allows interactive console, respect arguments > > passed to give the same error messages etc. > > > > Does anyone know how I can do this with py2exe? > > It sounds like you're looking to recreate part, if not all, of Movable > Python. That's a commercial offering from our friend Fuzzy (Michael Foord) - > you can find it at http://www.voidspace.org.uk/python/movpy/. You might see > if its price/features meet your needs. If not, I know Fuzzy posted some info > to this list when he was creating Movable Python, but I can't remember how > much. Google might help there. > > If you just want to expand the main script you've started above with the > interactive interpreter, then > http://docs.python.org/lib/console-objects.html will help. You'll also want > to indicate to py2exe any modules/packages that you think your users might > want to use to make sure they are included. > > You can modify sys.argv (or assign an entirely new list to it) if you want > to emulate arguments for scripts. You'll have to do some experimentation to > see what sys.argv looks like in a script run by python.exe vs. py2exe + your > pyscript code above and then compensate for the differences. > > Others may have better ideas for some or all of this... > > Regards, > Jimmy > > |
From: Fuzzyman <fuz...@vo...> - 2007-11-27 13:19:53
|
Fredrik Corneliusson wrote: >Hi Jimmy and Ralf, >Thanks for your help! > >Sorry for not getting back sooner. >Regarding Movable Python, the py2exe variant is already in production >and MP is probably overkill for this just feature. >Also it woks well now and scripts that depend on libs not present in >the freezed version can just keep them in the same dir as the script >to be able to use them. Passing arguments to the users script is also >no problem (it's the "sys.argv.pop(1)" that takes care of this). > >So it's more for cosmetics and "user friendliness" sake that I want >them to be able to do a "freezedpython.exe -h" and get the same >response as when doing "python.exe -h". But if it's not possible in a >easy way it's not the end of the world and I can keep it as it is. > > > In Movable Python I have code that specifically handles all of the Python command line options that I want to replicate. I guess you would have to do the same. Michael http://www.manning.com/foord >Thanks again, >Fredrik > > >On Nov 20, 2007 4:46 PM, Jimmy Retzlaff <ji...@re...> wrote: > > >>On 11/20/07 3:52 AM, "Fredrik Corneliusson" <fre...@gm...> >>wrote: >> >> >> >> >>>I've created a Python application and distribute it using py2exe. >>>As I want users to be able to write custom scripts using it's libs >>>without having to install Python I've created a small script (that I >>>create an exe file for) that can run scripts using the freezed Python >>>environment. >>> >>>8<------ >>>import imp,sys >>>pyscript = sys.argv.pop(1) >>>imp.load_source( '__main__',pyscript ) >>>----->8 >>> >>>It works quite well but I would like it behave exactly as the normal >>>python interpreter so it allows interactive console, respect arguments >>>passed to give the same error messages etc. >>> >>>Does anyone know how I can do this with py2exe? >>> >>> >>It sounds like you're looking to recreate part, if not all, of Movable >>Python. That's a commercial offering from our friend Fuzzy (Michael Foord) - >>you can find it at http://www.voidspace.org.uk/python/movpy/. You might see >>if its price/features meet your needs. If not, I know Fuzzy posted some info >>to this list when he was creating Movable Python, but I can't remember how >>much. Google might help there. >> >>If you just want to expand the main script you've started above with the >>interactive interpreter, then >>http://docs.python.org/lib/console-objects.html will help. You'll also want >>to indicate to py2exe any modules/packages that you think your users might >>want to use to make sure they are included. >> >>You can modify sys.argv (or assign an entirely new list to it) if you want >>to emulate arguments for scripts. You'll have to do some experimentation to >>see what sys.argv looks like in a script run by python.exe vs. py2exe + your >>pyscript code above and then compensate for the differences. >> >>Others may have better ideas for some or all of this... >> >>Regards, >>Jimmy >> >> >> >> > >------------------------------------------------------------------------- >This SF.net email is sponsored by: Microsoft >Defy all challenges. Microsoft(R) Visual Studio 2005. >http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >_______________________________________________ >Py2exe-users mailing list >Py2...@li... >https://lists.sourceforge.net/lists/listinfo/py2exe-users > > > |
From: Fredrik C. <fre...@gm...> - 2007-11-29 14:50:13
Attachments:
runpyscript.py
py2exe_runpyscript_setup.py
|
Hi, I've added some minimal command line parsing and help output to my previous script that ran python source scripts using the freezed python environment. It's nothing that can compete with movable python (or even have the same goal) but I think it can be useful if people just want to add flexibility to py2exe compiled applications. I also included a py2exe setup script that builds it into "runpyscript.exe" and a console less version "runpyscriptw.exe". Maybe it could be added to the wiki if anyone feels it would be worth while. Regards, Fredrik On Nov 20, 2007 4:46 PM, Jimmy Retzlaff <ji...@re...> wrote: > On 11/20/07 3:52 AM, "Fredrik Corneliusson" <fre...@gm...> > wrote: > > > > I've created a Python application and distribute it using py2exe. > > As I want users to be able to write custom scripts using it's libs > > without having to install Python I've created a small script (that I > > create an exe file for) that can run scripts using the freezed Python > > environment. > > > > 8<------ > > import imp,sys > > pyscript = sys.argv.pop(1) > > imp.load_source( '__main__',pyscript ) > > ----->8 > > > > It works quite well but I would like it behave exactly as the normal > > python interpreter so it allows interactive console, respect arguments > > passed to give the same error messages etc. > > > > Does anyone know how I can do this with py2exe? > > It sounds like you're looking to recreate part, if not all, of Movable > Python. That's a commercial offering from our friend Fuzzy (Michael Foord) - > you can find it at http://www.voidspace.org.uk/python/movpy/. You might see > if its price/features meet your needs. If not, I know Fuzzy posted some info > to this list when he was creating Movable Python, but I can't remember how > much. Google might help there. > > If you just want to expand the main script you've started above with the > interactive interpreter, then > http://docs.python.org/lib/console-objects.html will help. You'll also want > to indicate to py2exe any modules/packages that you think your users might > want to use to make sure they are included. > > You can modify sys.argv (or assign an entirely new list to it) if you want > to emulate arguments for scripts. You'll have to do some experimentation to > see what sys.argv looks like in a script run by python.exe vs. py2exe + your > pyscript code above and then compensate for the differences. > > Others may have better ideas for some or all of this... > > Regards, > Jimmy > > |
From: Ralf S. <ra...@br...> - 2007-11-22 20:13:39
|
Fredrik Corneliusson wrote: > Hi, > I've created a Python application and distribute it using py2exe. > As I want users to be able to write custom scripts using it's libs > without having to install Python I've created a small script (that I > create an exe file for) that can run scripts using the freezed Python > environment. > > 8<------ > import imp,sys > pyscript = sys.argv.pop(1) > imp.load_source( '__main__',pyscript ) > ----->8 > > It works quite well but I would like it behave exactly as the normal > python interpreter so it allows interactive console, respect arguments > passed to give the same error messages etc. > bbfreeze implements a custom interpreter. the code for an interactive console can be found here: http://systemexit.de/repo/bbfreeze/file/01c0e1d9db5b/bbfreeze/py.py > Does anyone know how I can do this with py2exe? > > Thanks for your great work! > > Regards, > Fredrik > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ |