[Bf-committers] Python 2.3 and Windows
Willian Padovani Germano
Tue, 27 Apr 2004 16:32:03 -0300
I made a test and by including a few more standard Python modules with Blender
itself or as an extra small download, most scripts won't need full py
installations. The test worked fine for both me and (thanks!) Nathan, aka
We can include the extra .py modules in a Python23.zip file + the zlib.pyd (it's
a dll) and put these in the same dir where Blender is. Of course the Python 2.3
license piece should also be added -- should have been before, since we link
against their lib.
I'm still seeing which modules must be included, sent an email to the bpython
list about it. Suggestions can be emailed to me. I can also send the two test
files if others want to try now, too. Well, that's it.
For those interested (don't stop reading, Ton), to clear up the confusion :
Python is basically an interpreter and its libraries. The libraries (better
call them modules) are divided in three sets:
a) builtin in the interpreter itself;
b) platform-specific shared libs (*.so in linux, *.pyd in win);
c) .py source code (can be seen compiled / optimized as .pyc or .pyo).
Note: the (a) set above varies from platform to platform. Ex: win python comes
with math, time and many other builtin libs that are *by default* built as
shared (b) .so's under Linux.
Blender comes with its BPython modules + (a), all builtin statically. Only when
a script imports a module that is in (b) or (c), a user has to have full Python
installed to run it.
But we can ship some of these modules with Blender itself, too. A < 100k
inclusion for Windows can provide modules enough to run most scripts out there.
Compare that to an extra > 9 MB download for users not otherwise interested in
Python itself ...
After finishing with Windows we'll study what can be done for other platforms.
Thanks for reading up to here and it would be great if someone with a Mac (and
anything except Windows and Linux x86) binary compiled against *Python 2.3*
could send me the output of
import sys; print sys.builtin_module_names