[PEAK] Packaging peak apps
Phillip J. Eby
pje at telecommunity.com
Tue Feb 1 14:48:32 EST 2005
At 09:11 PM 2/1/05 +0200, alexander smishlajev wrote:
>Phillip J. Eby wrote, at 08.10.2004 20:33:
>>'config.fileNearModule()' is now deprecated and its usage in the PEAK
>>libraries has been converted to 'config.packageFile()', which is able to
>>work with PEP 302 loaders that have a 'get_data()' method (such as the
>>zipfile import loader in Python 2.3 and up).
>
>with current cvs checkout, i cannot run PEAK from zip file:
>
> File "peak\running\commands.pyc", line 342, in __call__
> File "peak\running\commands.pyc", line 432, in interpret
> File "peak\binding\components.pyc", line 397, in lookupComponent
> File "peak\naming\names.pyc", line 198, in findComponent
> File "peak\naming\api.pyc", line 53, in lookup
> File "peak\naming\api.pyc", line 34, in InitialContext
> File "peak\naming\spi.pyc", line 61, in getInitialContext
> File "peak\core.pyc", line 235, in __call__
> File "peak\config\config_components.pyc", line 402, in lookup
>peak.exceptions.NameNotFound: peak.naming.initialContextFactory
>[resolvedObj=<peak.running.commands.ZConfigInterpreter object at 0x00CBDB50>]
>
>if i add moduleName to self.path in ImportLoaderFactory, this name is
>found (zipfile contains peak.ini is in 'peak' package directory).
Yeah, I just found out about this the other day, when I realized I had
misread PEP 302's specification about how the paths are supposed to
work. More precisely, what needs to be added is the module's __file__. I
will try to fix that this evening.
FYI, on a related note, see
http://peak.telecommunity.com/DevCenter/PythonEggs for some work Bob
Ippolito and I are doing on making it possible to run arbitrary C
extensions from zipfiles; when the work is finished (hopefully by PyCon),
it should be possible to distribute PEAK entirely within a zipfile, and
PEAK may begin splitting its distribution into smaller pieces, each in its
own zipfile.
More information about the PEAK
mailing list