= Overview = '''zipextimporter.py''' contains the ZipExtImporter class which allows to load Python binary extension modules contained in a zip.archive, without unpacking them to the file system. Call the '''zipextimporter.install()''' function to install the import hook, add a zip-file containing '''.pyd''' or '''.dll''' extension modules to '''sys.path''', and import them. It contains a '''_memimporter.pyd''' extension which uses code from Joachim Bauch's [[http://www.joachim-bauch.de/tutorials/load_dll_memory.html|MemoryModule]] library. This library emulates the win32 api function LoadLibrary. = License = LGPL (because that's what MemoryModule uses). = Sample usage = {{{ >>> import zipextimporter >>> zipextimporter.install() >>> import sys >>> sys.path.append("lib.zip") >>> import _socket >>> _socket.__file__ 'c:\\sf\\py2exe\\hacks\\memimp\\lib.zip\\_socket.pyd' >>> _socket.__loader__ >>> }}} = Bugs = '''reload()''' on already imported extension modules does not work correctly: It happily loads the extension a second time. zipextimporter doesn't yet work for extensions in packages, but I have a fix for that. = Download = Sourcecode [[http://starship.python.net/crew/theller/memimporter-0.0.1.zip|memimporter-0.0.1.zip]] Installer for Python 2.3 [[http://starship.python.net/crew/theller/memimporter-0.0.1.win32-py2.3.exe|memimporter-0.0.1-win32.py2.3.exe]] Installer for Python 2.4 [[http://starship.python.net/crew/theller/memimporter-0.0.1.win32-py2.4.exe|memimporter-0.0.1-win32.py2.4.exe]] = Comments, Feedback = Feedback appreciated. Log in to this wiki (click to UserPreferences link), and enter your comments here.