Prev: [BarCamp] WebWorkersCamp BarCamp: NodeJS, NoSQL, Message Queues, Asynchronous programming, Web Sockets, Distributed Applications, Decentralized Social Networks, buzzword generators...
Next: Converting datetime.ctime() values to Unicode
From: Nima on 17 May 2010 12:12 I'd like to install python on an embedded system. It's a powerful x86- based computer with the only limitation of having a small-size flash ROM as its secondary storage. So there is no hard drive and the system is booted from the flash memory. The operating system, BusyBox (a flavor of Linux), and other applications occupy most of the flash memory. As the subject implies, Python isn't already installed on the box. I tried to compile/install python on a Linux box which roughly took 60MB of the memory. The maximum amount of Flash memory I'm permitted to use is about 10-20 MB. Is there a light-weight implementation of python which I could use? Is there a way to remove unnecessary modules? BTW, + I'm supposed to write a web management interface for this system (using python). + I know how to use Google! + I'm a newbie, so please be gentle :)
From: geremy condra on 17 May 2010 13:00 On Mon, May 17, 2010 at 9:12 AM, Nima <nima.irt(a)gmail.com> wrote: > I'd like to install python on an embedded system. It's a powerful x86- > based computer with the only limitation of having a small-size flash > ROM as its secondary storage. So there is no hard drive and the system > is booted from the flash memory. > The operating system, BusyBox (a flavor of Linux), and other > applications occupy most of the flash memory. As the subject implies, > Python isn't already installed on the box. I tried to compile/install > python on a Linux box which roughly took 60MB of the memory. The > maximum amount of Flash memory I'm permitted to use is about 10-20 MB. > Is there a light-weight implementation of python which I could use? Is > there a way to remove unnecessary modules? > BTW, > + I'm supposed to write a web management interface for this system > (using python). > + I know how to use Google! > + I'm a newbie, so please be gentle :) > -- > http://mail.python.org/mailman/listinfo/python-list > I'm not an expert, but there are probably a large-ish number of modules you could remove without much sacrifice on your part. Looking at the module list and just picking the platform-dependent ones: * _winreg * aepack * aetools * aetypes * AL * al * applesingle * autoGIL * buildtools * Carbon * cd * cfmfile * chunk * colorpicker * etc * etc * etc You could also probably remove things like 2to3, tabnanny, etc, and I doubt tkinter is doing you much good. I also recall someone at pycon talking about importing modules from a .zip archive. I'm not sure how easy/hard that is, but you may want to look at PEP 302. Geremy Condra
From: Nima Mohammadi on 17 May 2010 15:08 Thanks Geremy :) The majority of installed files (56MB of data) reside in /lib/ python2.6/. So far, I took these steps to make it as compact as possible: 1. I deleted /lib/python2.6/test directory. This reduced the size by 20MB. 2. I deleted .py files (cause the corresponding pyc ones are there). This reduced the size by 9MB. 3. I deleted the /lib/libpython2.6.a which was 6MB. * By far the python runs flawlessly. 4. I zip up the /lib/python2.6/ as python26.zip and place it in the / lib/ directory. Then I delete the /lib/python2.6/ directory. By running python, I get this output, though /lib/python26.zip is in the sys.path variable. nima(a)nima-desktop:~/py$ ./bin/python Could not find platform independent libraries <prefix> Could not find platform dependent libraries <exec_prefix> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] 'import site' failed; use -v for traceback Python 2.6.5 (r265:79063, May 17 2010, 18:36:54) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['', '/home/nima/py/lib/python26.zip', '/home/nima/py/lib/python2.6/', '/home/nima/py/lib/python2.6/plat-linux2', '/home/nima/py/lib/ python2.6/lib-tk', '/home/nima/py/lib/python2.6/lib-old', '/home/nima/ py/lib/lib-dynload'] On May 17, 9:00 pm, geremy condra <debat...(a)gmail.com> wrote: > I'm not an expert, but there are probably a large-ish number of modules > you could remove without much sacrifice on your part. Looking at the > module list and just picking the platform-dependent ones: > > * _winreg > * aepack > * aetools > * aetypes > * AL > * al > * applesingle > * autoGIL > * buildtools > * Carbon > * cd > * cfmfile > * chunk > * colorpicker > * etc > * etc > * etc > > You could also probably remove things like 2to3, tabnanny, etc, > and I doubt tkinter is doing you much good. > > I also recall someone at pycon talking about importing modules > from a .zip archive. I'm not sure how easy/hard that is, but you > may want to look at PEP 302. > > Geremy Condra Yours sincerely, Nima Mohammadi
From: Nima Mohammadi on 17 May 2010 16:11 Well, I tried to run Python with -v option. It seems that python26.zip is partially loaded but can't be used, because zlib is "unavailable". nima(a)nima-desktop:~/py$ ./bin/python -v Could not find platform independent libraries <prefix> Could not find platform dependent libraries <exec_prefix> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] # installing zipimport hook import zipimport # builtin # installed zipimport hook # zipimport: found 2509 names in /home/nima/py/lib/python26.zip # zipimport: zlib UNAVAILABLE 'import site' failed; traceback: zipimport.ZipImportError: can't decompress data; zlib not available # zipimport: zlib UNAVAILABLE Python 2.6.5 (r265:79063, May 17 2010, 18:36:54) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['', '/home/nima/py/lib/python26.zip', '/home/nima/py/lib/python2.6/', '/home/nima/py/lib/python2.6/plat-linux2', '/home/nima/py/lib/ python2.6/lib-tk', '/home/nima/py/lib/python2.6/lib-old', '/home/nima/ py/lib/lib-dynload'] -- Yours sincerely, Nima Mohammadi
From: geremy condra on 17 May 2010 16:30
On Mon, May 17, 2010 at 1:05 PM, Nima <nima.irt(a)gmail.com> wrote: > Well, I tried to run Python with -v option. It seems that python26.zip is > partially loaded but can't be used, because zlib is "unavailable". is the zlib module among the files you've compressed? Geremy Condra |