Size: 1512
Comment:
|
Size: 1512
Comment: Corrected the download links.
|
Deletions are marked like this. | Additions are marked like this. |
Line 42: | Line 42: |
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.3 [http://starship.python.net/crew/theller/memimporter-0.0.1.win32-py2.3.exe memimporter-0.0.1-win32.py2.3.exe] |
Line 44: | Line 44: |
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] | 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] |
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__ <ZipExtensionImporter at a74480> >>>
Bugs
reload() on already imported extension modules does not work correctly: It happily loads the extension a second time.
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]