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
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']
Yours sincerely,
Nima Mohammadi
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
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/
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?
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.