Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Installing Lightweight Python

Reply
Thread Tools

Installing Lightweight Python

 
 
Nima
Guest
Posts: n/a
 
      05-17-2010
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
 
Reply With Quote
 
 
 
 
geremy condra
Guest
Posts: n/a
 
      05-17-2010
On Mon, May 17, 2010 at 9:12 AM, Nima <(E-Mail Removed)> 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
 
Reply With Quote
 
 
 
 
Nima Mohammadi
Guest
Posts: n/a
 
      05-17-2010
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@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 <(E-Mail Removed)> 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
 
Reply With Quote
 
Nima Mohammadi
Guest
Posts: n/a
 
      05-17-2010
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@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
 
Reply With Quote
 
geremy condra
Guest
Posts: n/a
 
      05-17-2010
On Mon, May 17, 2010 at 1:05 PM, Nima <(E-Mail Removed)> 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
 
Reply With Quote
 
Nima Mohammadi
Guest
Posts: n/a
 
      05-17-2010
On May 18, 12:30*am, geremy condra <(E-Mail Removed)> wrote:
> On Mon, May 17, 2010 at 1:05 PM, Nima <(E-Mail Removed)> 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


zlib.so is a shared library which is in the /lib/python2.6/lib-
dynload/ directory.
In PEP 273 is noted that:

> Any files may be present in the zip archive, but only files
> *.py and *.py[co] are available for import. Zip import of
> dynamic modules (*.pyd, *.so) is disallowed.


http://www.python.org/dev/peps/pep-0273/

--
Yours sincerely,
Nima Mohammadi
 
Reply With Quote
 
Nima Mohammadi
Guest
Posts: n/a
 
      05-17-2010
On May 18, 1:04*am, Nima Mohammadi <(E-Mail Removed)> wrote:
> On May 18, 12:30*am, geremy condra <(E-Mail Removed)> wrote:
>
> > On Mon, May 17, 2010 at 1:05 PM, Nima <(E-Mail Removed)> 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

>
> zlib.so is a shared library which is in the /lib/python2.6/lib-
> dynload/ directory.
> In PEP 273 is noted that:
>
> > Any files may be present in the zip archive, but only files
> > *.py and *.py[co] are available for import. *Zip import of
> > dynamic modules (*.pyd, *.so) is disallowed.

>
> http://www.python.org/dev/peps/pep-0273/
>
> --
> Yours sincerely,
> Nima Mohammadi


The problem is solved! I just needed to make a directory named
"python2.6" in the /lib/ directory and copy the lib-dynload/ directory
in it.
Thanks for your precious help, Geremy

Does anyone have the list of essentials modules to run python?
 
Reply With Quote
 
News123
Guest
Posts: n/a
 
      05-19-2010


Nima Mohammadi 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".

This is normal.
the zip library itself cannot be zipped, as it is needed to unzip and
extract th other libs.

>
> nima@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

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Pyrolite - a lightweight interface library to connect java to python Irmen de Jong Python 0 07-16-2011 02:02 PM
Lightweight embedding of Firefox Gecko into application whose toplevel is Python--possible? Kenneth McDonald Python 0 12-19-2006 05:20 AM
Lightweight Python distribute it in under 2MBs for Win32 Ramza Brown Python 3 08-24-2005 12:26 AM
When I spawn a lightweight process in ASP.NET Does it time out?? MS News ASP .Net 2 07-31-2003 11:53 PM
lightweight XSLT-based page flow: anyone thought of this? SUPER KOOL 223 Java 0 07-29-2003 08:01 PM



Advertisments