zipimport — Import modules from Zip archives

Python 可以自定义导入模块的过程,见 PEP 302,以后再研究。

如果涉及到打包发布各种模块,建议先使用 compileall,预编译好二进制,然后 zip 压缩,最后加入环境变量 PYTHONPATH 来激活:

python -OO -m compileall -b -f .
rm -f m.zip && find . -name '*.pyc' | xargs zip -r m.zip

PYTHONPATH="m.zip:/another/zip/archive.zip" python your_app.py

注:指定 PYTHONPATH 后,sys.path 将会是

[your_app.py-DIR, m.zip, /another/zip/archive.zip, ...]