Kristján Valur Jónsson wrote:
When using python to compile to bytecode, it is really inconvenient that the compiler is fixed into using whatever opmiziation level the interpreter was started with. This makes it impossible to create e.g. .zip libraries of different optimization levels from a single python session. What is more, a program that creates optimized .zip files cannot itself have active asserts and so on. Adding the optimize state to the compiler´s state outht not to be too difficult. We could then: compile(source, filename, mode[, flags[, dont_inherit[, optimize]]]) with optmize defaulting to the interpreter's current level.
Same with py_compile, and so on.
We could then remove the tricks in distutils to compile a package using an external spawned Python process to get around the limitation.
See e.g. mxTools for an alternative, but not thread-safe approach: