Am 20.08.2013 18:22, schrieb Nick Coghlan:
On 20 Aug 2013 09:18, "Thomas Heller" <thel...@ctypes.org <mailto:thel...@ctypes.org>> wrote: > > Am 20.08.2013 15:42, schrieb Nick Coghlan: > >> Importing C extensions requires extracting them to a temp directory and >> loading them from there. Trivial in Python, a pain in C. zipimport is >> currently still written in C. > > > So what - zipimport is a builtin module (on Windows at least). Huh? That's irrelevant to the fact that doing the tempdir creation, file extraction and subsequent import entirely in C code would be painfully tedious.
Ok, now I understand. But the zipfile could contain a loader-module for each extension which does something like this (this example extracts and loads 'bz2.pyd'): def __load(): import imp, os path = os.path.join(__loader__.archive, "--EXTENSIONS--", 'bz2.pyd') data = __loader__.get_data(path) dstpath = os.path.join(TEMPDIR, 'bz2.pyd') with open(dstpath, "wb") as dll: dll.write(data) imp.load_dynamic(__name__, dstpath) __load() del __load (py2exe for Python 3, which is work in progress, uses this approach) Thomas _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig