"python exe" and "py plugins"

M

marco

Hi,
first of all ; sorry for my poor english ; i'm french ...
and i hope you can understand below

I use python (and wxpython) on a win32 platform, to build a simple "home
theater pc".
I want to release it in a package (with all needed to run)
so i use (the wonderful) py2exe to build it ... it works like a charm ...
nothing to say

but, i'd like to make my program "plugin'able" ...
so i ask myself (and you too ;-), if i could do that :
- release all "core program" in an exe (with py2exe)
- release the plugins in ".py" files ... and distribute them in a subfolder
of my core program.

and i like to call these "py files" from my core program ... (with
execfile() ?)
can the exe call theses, without an "installed python runtime" ? (i hope ;-)

i hope you understand my need ... and could answer at my question (wish)

marc
 
M

marco

i answer my self ...

it WORKS !!!!!!!!!!!!!!!!!!!

here are a py which i "compiled" into an exe (with py2exe)
=====================================================
from wxPython.wx import *

class Menu(wxFrame):
def __init__(self, prnt):
wxFrame.__init__(self,prnt, id=-1,title="jo")
b=wxButton(self,-1,"coucou")
EVT_BUTTON(b,-1, self.run)

def run(self,e):
execfile("m.py")

if __name__ == '__main__':
app = wxPySimpleApp()
wxInitAllImageHandlers()
f=Menu(None)
f.Show()
app.MainLoop()
=====================================================

here is an simple py script which is called by the exe (see up)
=====================================================
def msgBox(msg):
dlg = wxMessageDialog(None, msg, "hell", wxOK | wxICON_INFORMATION)
dlg.ShowModal()
dlg.Destroy()

if __name__ == '__main__':
aapp = wxPySimpleApp()
wxInitAllImageHandlers()
msgBox("coco")
=====================================================

and it works WITHOUT THE PYTHON RUNTIME INSTALLED ...
sure that this script can't import lib which are not in the exe ;-)

python is a very very great system !!!! i love it a lot !
 
M

Miki Tebeka

Hello Marco,
first of all ; sorry for my poor english ; i'm french ...
Hope my Israeli English will be good enough :)
but, i'd like to make my program "plugin'able" ...
so i ask myself (and you too ;-), if i could do that :
- release all "core program" in an exe (with py2exe)
- release the plugins in ".py" files ... and distribute them in a subfolder
of my core program.

and i like to call these "py files" from my core program ... (with
execfile() ?)
can the exe call theses, without an "installed python runtime" ? (i hope ;-)
I don't think there is a problem unless the plugin module uses some
libraries that py2exe didn't pack. In this case you need to provide
them as well. You can use distutils or py2exe --dry-run to determine
which packages are required by the plugin.

Also be aware of security hazard. If some plugin has
"sutil.rmtree("c:\\")" somewhere in it you're in big trouble. The
restricted execution modules in python are currently obsolete.

HTH.
Miki
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top