Differences between revisions 4 and 5
Revision 4 as of 2004-12-16 09:55:16
Size: 1512
Editor: www
Comment:
Revision 5 as of 2004-12-16 10:05:25
Size: 1512
Editor: www
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]

Hacks/ZipExtImporter (last edited 2015-03-30 19:50:22 by JimmyRetzlaff)