
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
The following patch is the quickest hack I could think of to make liveevil import successfully (albeit non-usefully) in an app that bundles nevow with py2exe.
Liveevil won't *work* under these conditions, so someone needs to think of a way to tell it how to find liveevil.js if they want py2exe + liveevil. This should permit non-liveevil nevow apps work ok though, which currently they don't. Without this patch you get an error along the lines of IOError: No such file "C:...\library.zip\nevow\liveevil.js".
C
Index: liveevil.py =================================================================== - --- liveevil.py (revision 1334) +++ liveevil.py (working copy) @@ -294,16 +294,20 @@ ~ return os.path.join(dirname, 'liveevil.js')
- -_glueJS = _locateGlueJS() +try: + _glueJS = _locateGlueJS()
- -# A static.File resource that can be used from a <link> - -glueJS = static.File(_glueJS, 'text/javascript') + # A static.File resource that can be used from a <link> + glueJS = static.File(_glueJS, 'text/javascript')
- -# Inline JavaScript glue. TODO: deprecate this. - -glue = tags.inlineJS(open(_glueJS).read()) + # Inline JavaScript glue. TODO: deprecate this. + glue = tags.inlineJS(open(_glueJS).read())
- -# Glue which tells livepage to only allow clientToServer events, not async serverToClient events - -inputOnlyGlue = tags.inlineJS("var auto_open = false; var liveevil_unload = true;\n" + ''.join(open(_glueJS).readlines()[1:])) + # Glue which tells livepage to only allow clientToServer events, not async serverToClient events + inputOnlyGlue = tags.inlineJS("var auto_open = false; var liveevil_unload = true;\n" + ''.join(open(_glueJS).readlines()[1:])) +except EnvironmentError: + glueJS = inputOnlyGlue = glue = None + warnings.warn("Could not open liveevil.js")
~ ctsTemplate = "nevow_clientToServerEvent('%s',this%s);%s"

Cory Dodt wrote:
The following patch is the quickest hack I could think of to make liveevil import successfully (albeit non-usefully) in an app that bundles nevow with py2exe.
Liveevil won't *work* under these conditions, so someone needs to think of a way to tell it how to find liveevil.js if they want py2exe + liveevil. This should permit non-liveevil nevow apps work ok though, which currently they don't. Without this patch you get an error along the lines of IOError: No such file "C:...\library.zip\nevow\liveevil.js".
C
Index: liveevil.py =================================================================== --- liveevil.py (revision 1334) +++ liveevil.py (working copy) @@ -294,16 +294,20 @@ return os.path.join(dirname, 'liveevil.js')
-_glueJS = _locateGlueJS() +try: + _glueJS = _locateGlueJS()
-# A static.File resource that can be used from a <link> -glueJS = static.File(_glueJS, 'text/javascript') + # A static.File resource that can be used from a <link> + glueJS = static.File(_glueJS, 'text/javascript')
-# Inline JavaScript glue. TODO: deprecate this. -glue = tags.inlineJS(open(_glueJS).read()) + # Inline JavaScript glue. TODO: deprecate this. + glue = tags.inlineJS(open(_glueJS).read())
-# Glue which tells livepage to only allow clientToServer events, not async serverToClient events -inputOnlyGlue = tags.inlineJS("var auto_open = false; var liveevil_unload = true;\n" + ''.join(open(_glueJS).readlines()[1:])) + # Glue which tells livepage to only allow clientToServer events, not async serverToClient events + inputOnlyGlue = tags.inlineJS("var auto_open = false; var liveevil_unload = true;\n" + ''.join(open(_glueJS).readlines()[1:])) +except EnvironmentError: + glueJS = inputOnlyGlue = glue = None + warnings.warn("Could not open liveevil.js")
ctsTemplate = "nevow_clientToServerEvent('%s',this%s);%s"
participants (1)
-
Cory Dodt