Ok, I'm going to give it a try in a while for now, this is the problem with
jinja2, it needs to compile something

easy_install -i http://dist.repoze.org/bfg/1.1/simple/ repoze.bfg.jinja2
Searching for repoze.bfg.jinja2
Best match: repoze.bfg.jinja2 0.5
Processing repoze.bfg.jinja2-0.5-py2.5.egg
repoze.bfg.jinja2 0.5 is already the active version in easy-install.pth

Using
/home/iamedu/Tests/jython/sys/Lib/site-packages/repoze.bfg.jinja2-0.5-py2.5.egg
Processing dependencies for repoze.bfg.jinja2
Searching for Jinja2
Reading http://dist.repoze.org/bfg/1.1/simple/Jinja2/
Best match: Jinja2 2.1.1
Downloading http://dist.repoze.org/bfg/1.1/Jinja2-2.1.1.tar.gz
Processing Jinja2-2.1.1.tar.gz
Running Jinja2-2.1.1/setup.py -q bdist_egg --dist-dir
/tmp/easy_install-wxGcPq/Jinja2-2.1.1/egg-dist-tmp-eTzSIB
warning: no files found matching 'Makefile'
warning: no files found matching 'ez_setup.py'
warning: no previously-included files matching '*' found under directory
'docs/_build/doctrees'
error: Setup script exited with error: Compiling extensions is not supported
on Jython

The problem with chameleon is that jython doesn't have the parser module.

Going to keep checking with other templating engines.

On Mon, Jan 4, 2010 at 4:10 PM, Chris McDonough <chr...@plope.com> wrote:

> Diaz, Eduardo wrote:
>
>> That helps with the zcml problem but now, there is a problem with
>> chameleon, is there another template language I can use?
>>
>> This is the stack trace:
>>
>> paster serve MyProject.ini Starting server in PID 8071.
>> serving on 0.0.0.0:6543 <http://0.0.0.0:6543> view at
>> http://127.0.0.1:6543
>>
>> ----------------------------------------
>> Exception happened during processing of request from (u'127.0.0.1', 53678)
>> Traceback (most recent call last):
>>  File
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/Paste-1.7.2-py2.5.egg/paste/httpserver.py",
>> line 1062, in process_request_in_thread
>>    self.finish_request(request, client_address)
>>  File "/home/iamedu/Tools/jython2.5.1/Lib/SocketServer.py", line 254, in
>> finish_request
>>    self.RequestHandlerClass(request, client_address, self)
>>  File "/home/iamedu/Tools/jython2.5.1/Lib/SocketServer.py", line 522, in
>> __init__
>>    self.handle()
>>  File
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/Paste-1.7.2-py2.5.egg/paste/httpserver.py",
>> line 436, in handle
>>    BaseHTTPRequestHandler.handle(self)
>>  File
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/Paste-1.7.2-py2.5.egg/paste/httpserver.py",
>> line 436, in handle
>>    BaseHTTPRequestHandler.handle(self)
>>  File "/home/iamedu/Tools/jython2.5.1/Lib/BaseHTTPServer.py", line 316, in
>> handle
>>    self.handle_one_request()
>>  File
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/Paste-1.7.2-py2.5.egg/paste/httpserver.py",
>> line 431, in handle_one_request
>>    self.wsgi_execute()
>>  File
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/Paste-1.7.2-py2.5.egg/paste/httpserver.py",
>> line 286, in wsgi_execute
>>    result = self.server.wsgi_application(self.wsgi_environ,
>>  File
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/repoze.bfg-1.2a10-py2.5.egg/repoze/bfg/router.py",
>> line 127, in __call__
>>    response = view_callable(context, request)
>>  File
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/repoze.bfg-1.2a10-py2.5.egg/repoze/bfg/router.py",
>> line 127, in __call__
>>    response = view_callable(context, request)
>>  File
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/repoze.bfg-1.2a10-py2.5.egg/repoze/bfg/configuration.py",
>> line 1656, in _bfg_requestonly_view
>>    response = rendered_response(renderer,
>>  File
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/repoze.bfg-1.2a10-py2.5.egg/repoze/bfg/configuration.py",
>> line 1533, in rendered_response
>>    result = renderer(response, {'view':view,
>> 'renderer_name':renderer_name,
>>  File
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/repoze.bfg-1.2a10-py2.5.egg/repoze/bfg/chameleon_zpt.py",
>> line 43, in __call__
>>    result = self.template(**system)
>>  File
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/repoze.bfg-1.2a10-py2.5.egg/repoze/bfg/decorator.py",
>> line 13, in __get__
>>    val = self.wrapped(inst)
>>  File
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/repoze.bfg-1.2a10-py2.5.egg/repoze/bfg/chameleon_zpt.py",
>> line 33, in template
>>    return PageTemplateFile(self.path, auto_reload=auto_reload)
>>  File
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/repoze.bfg-1.2a10-py2.5.egg/repoze/bfg/chameleon_zpt.py",
>> line 11, in __init__
>>    raise ImportError(why[0])
>> ImportError: No module named parser
>> ----------------------------------------
>>
>> The source code where this happens says:
>>
>> try:
>>    from chameleon.zpt.template import PageTemplateFile
>> except ImportError, why: # pragma: no cover
>>    # Chameleon doesn't work on non-CPython platforms
>>    class PageTemplateFile(object):
>>        def __init__(self, *arg, **kw):
>>            raise ImportError(why[0])
>>
>> So I'm guessing that something needs to be compile with C, I tried jinja2
>> but I cannot even install it.
>>
>
> It's not actually a compilation requirement problem; Chameleon has no
> dependencies that have (non-optional) C code.
>
> The information in this traceback is obscured by the fact that bfg tries
> hard to be at least importable on platforms that don't support Chameleon.
>  You might  try changing:
>
>
>    try:
>        from chameleon.zpt.template import PageTemplateFile
>    except ImportError, why: # pragma: no cover
>        # Chameleon doesn't work on non-CPython platforms
>        class PageTemplateFile(object):
>            def __init__(self, *arg, **kw):
>                raise ImportError(why[0])
>
> to:
>
>
> from chameleon.zpt.template import PageTemplateFile
>
> .. to prevent BFG from hiding traceback information from you here.
>
> I suspect the root cause may be due to the fact that Chameleon generates
> Python code using the "ast" module, which seems to typically only available
> in CPython.  Chameleon doesn't work on GAE for the same reason.  But the
> only way to know for sure is to see the "real" traceback.
>
> I was going to suggest repoze.bfg.jinja2, but you say you can't even get
> Jinja2 to install.  You might just try using a templating system that's
> known to work on Jython.  I don't know one that is, because I've never used
> Jython, but you could try Genshi, Mako, or Cheetah.  Then just use its API
> to generate strings to use in responses from within BFG, e.g. (assuming Mako
> works):
>
>   from mako.template import Template
>   from webob import Response
>
>   def mako_view(request):
>       template = Template(filename='/templates/template.mak')
>       result = template.render(name=request.params['name'])
>       response = Response(result)
>       return response
>
>
> Instructions for creating a more tight binding between BFG and arbitrary
> templating languages (in the form of a "renderer", which can be used within
> view configuration) exists here:
> http://docs.repoze.org/bfg/1.2/narr/views.html#adding-and-overriding-renderers
>
>
>  I'm going to see if I can do anything with the zcml problem meanwhile, it
>> seems to me to be a problem with the jython's xml parsing.
>>
>> Thanks a lot for your help, and if you have any suggestions I'll be glad
>> to read them.
>>
>
> Please let me know about how the above turns out, I'm interested in making
> this stuff work as widely as possible.
>
> Thanks!
>
> - C
>
>
>
>> On Mon, Jan 4, 2010 at 10:51 AM, Chris McDonough <chr...@plope.com<mailto:
>> chr...@plope.com>> wrote:
>>
>>    OK... its possible that zope.configuration doesn't work for some
>>    reason under Jython; I don't know that anyone has tried it recently.
>>     I may give it a shot myself over the next week or so out of curiosity.
>>
>>    In the meantime, however, you can disuse "declarative" (ZCML) style
>>    configuration, which will subvert zope.configuration entirely.  To
>>    do so, change the body of the "app" function in run.py of the
>>    generated sample app from this:
>>
>>       def app(global_config, **settings):
>>           """ This function returns a ``repoze.bfg`` application
>>    object.  It
>>           is usually called by the PasteDeploy framework during ``paster
>>           serve``"""
>>           zcml_file = settings.get('configure_zcml', 'configure.zcml')
>>           config = Configurator(root_factory=get_root, settings=settings)
>>           config.begin()
>>
>>           config.load_zcml(zcml_file)
>>           config.end()
>>           return config.make_wsgi_app()
>>
>>    to:
>>
>>       def app(global_config, **settings):
>>           """ This function returns a ``repoze.bfg`` application
>>    object.  It
>>           is usually called by the PasteDeploy framework during ``paster
>>           serve``"""
>>           zcml_file = settings.get('configure_zcml', 'configure.zcml')
>>           config = Configurator(root_factory=get_root, settings=settings)
>>           config.begin()
>>           config.add_view(context=MyModel, view=my_view,
>>                                renderer='templates/mytemplate.pt
>>    <http://mytemplate.pt>')
>>
>>           config.add_static_view(name='static', path='templates/static')
>>           config.end()
>>           return config.make_wsgi_app()
>>
>>    Diaz, Eduardo wrote:
>>
>>        Yes, it does
>>
>>        :P
>>
>>
>>        On Mon, Jan 4, 2010 at 10:42 AM, Chris McDonough
>>        <chr...@plope.com <mailto:chr...@plope.com>
>>        <mailto:chr...@plope.com <mailto:chr...@plope.com>>> wrote:
>>
>>           Diaz, Eduardo wrote:
>>
>>               Ok, I think I know why this is happening,
>>
>>               the exception raises in the _validate method of the
>> Orderable
>>               class, this is where it happends:
>>
>>               if self.max is not None and value > self.max:
>>                  raise TooBig(value, self.max)
>>
>>               Here, max is a ValidatedProperty it has a __set___ method
>>        which
>>               gives it a value, the problem with jython seems to be that
>> it
>>               isn't getting the value from the instance dictionary, so
>>        I came
>>               up a workaround,
>>
>>               I define the __get__ method in the ValidatedPropertyClass
>>        like this:
>>
>>
>>               def __get__(self, inst, owner):
>>                  name, check = self._info
>>                  return inst.__dict__[name]
>>
>>               And now the tests run ok:
>>
>>               jython setup.py test -q
>>
>>               running test
>>               running egg_info
>>               writing MyProject.egg-info/PKG-INFO
>>               writing entry points to MyProject.egg-info/entry_points.txt
>>               writing requirements to MyProject.egg-info/requires.txt
>>               writing top-level names to MyProject.egg-info/top_level.txt
>>               writing dependency_links to
>>        MyProject.egg-info/dependency_links.txt
>>               reading manifest file 'MyProject.egg-info/SOURCES.txt'
>>               writing manifest file 'MyProject.egg-info/SOURCES.txt'
>>               running build_ext
>>               .
>>
>> ----------------------------------------------------------------------
>>               Ran 1 test in 0.005s
>>
>>               OK
>>
>>               I know it is not elegant, and I'll submit a bug to the
>> jython
>>               developers... but for now, I want to go on and there's
>>        another
>>               problem with running the project, and here it is:
>>
>>               paster serve MyProject.ini
>>               Traceback (most recent call last):
>>                File "/home/iamedu/Tests/jython/sys/bin/paster", line 7, in
>>               <module>
>>                  sys.exit(
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/PasteScript-1.7.3-py2.5.egg/paste/script/command.py",
>>               line 84, in run
>>                  invoke(command, command_name, options, args[1:])
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/PasteScript-1.7.3-py2.5.egg/paste/script/command.py",
>>               line 123, in invoke
>>                  exit_code = runner.run(args)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/PasteScript-1.7.3-py2.5.egg/paste/script/command.py",
>>               line 123, in invoke
>>                  exit_code = runner.run(args)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/PasteScript-1.7.3-py2.5.egg/paste/script/command.py",
>>               line 218, in run
>>                  result = self.command()
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/PasteScript-1.7.3-py2.5.egg/paste/script/serve.py",
>>               line 275, in command
>>                  app = self.loadapp(app_spec, name=app_name,
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/PasteScript-1.7.3-py2.5.egg/paste/script/serve.py",
>>               line 311, in loadapp
>>                  return loadapp(
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/PasteDeploy-1.3.3-py2.5.egg/paste/deploy/loadwsgi.py",
>>               line 204, in loadapp
>>                  return loadobj(APP, uri, name=name, **kw)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/PasteDeploy-1.3.3-py2.5.egg/paste/deploy/loadwsgi.py",
>>               line 225, in loadobj
>>                  return context.create()
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/PasteDeploy-1.3.3-py2.5.egg/paste/deploy/loadwsgi.py",
>>               line 625, in create
>>                  return self.object_type.invoke(self)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/PasteDeploy-1.3.3-py2.5.egg/paste/deploy/loadwsgi.py",
>>               line 110, in invoke
>>                  return fix_call(context.object, context.global_conf,
>>               **context.local_conf)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/PasteDeploy-1.3.3-py2.5.egg/paste/deploy/util/fixtypeerror.py",
>>               line 57, in fix_call
>>                  val = callable(*args, **kw)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/PasteDeploy-1.3.3-py2.5.egg/paste/deploy/util/fixtypeerror.py",
>>               line 57, in fix_call
>>                  val = callable(*args, **kw)
>>                File
>> "/home/iamedu/Tests/jython/MyProject/myproject/run.py",
>>               line 11, in app
>>                  config.load_zcml(zcml_file)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/repoze.bfg-1.2a10-py2.5.egg/repoze/bfg/configuration.py",
>>               line 424, in load_zcml
>>                  xmlconfig.file(filename, package, execute=True)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/zope.configuration-3.6.0-py2.5.egg/zope/configuration/xmlconfig.py",
>>               line 647, in file
>>                  include(context, name, package)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/zope.configuration-3.6.0-py2.5.egg/zope/configuration/xmlconfig.py",
>>               line 546, in include
>>                  processxmlfile(f, context)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/zope.configuration-3.6.0-py2.5.egg/zope/configuration/xmlconfig.py",
>>               line 378, in processxmlfile
>>                  parser.parse(src)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/zope.configuration-3.6.0-py2.5.egg/zope/configuration/xmlconfig.py",
>>               line 378, in processxmlfile
>>                  parser.parse(src)
>>                File
>>
>> "/home/iamedu/Tools/jython2.5.1/Lib/xml/sax/drivers2/drv_javasax.py",
>>               line 141, in parse
>>                  self._parser.parse(JyInputSourceWrapper(source))
>>                File
>>
>> "/home/iamedu/Tools/jython2.5.1/Lib/xml/sax/drivers2/drv_javasax.py",
>>               line 178, in startElement
>>                  self._cont_handler.startElementNS((uri or None,
>>        lname), qname,
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/zope.configuration-3.6.0-py2.5.egg/zope/configuration/xmlconfig.py",
>>               line 230, in startElementNS
>>                  self.context.begin(name, data, info)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/zope.configuration-3.6.0-py2.5.egg/zope/configuration/config.py",
>>               line 534, in begin
>>                  self.stack.append(self.stack[-1].contained(__name,
>> __data,
>>               __info))
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/zope.configuration-3.6.0-py2.5.egg/zope/configuration/config.py",
>>               line 835, in contained
>>                  return RootStackItem.contained(self, name, data, info)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/zope.configuration-3.6.0-py2.5.egg/zope/configuration/config.py",
>>               line 703, in contained
>>                  factory = self.context.factory(self.context, name)
>>                File
>>
>> "/home/iamedu/Tests/jython/sys/Lib/site-packages/zope.configuration-3.6.0-py2.5.egg/zope/configuration/config.py",
>>               line 480, in factory
>>                  raise ConfigurationError("Unknown directive", ns, n)
>>               zope.configuration.xmlconfig.ZopeXMLConfigurationError: File
>>
>> "file:///home/iamedu/Tests/jython/MyProject/myproject/configure.zcml",
>>               line 10.8
>>                  ConfigurationError: ('Unknown directive',
>>               u'http://namespaces.repoze.org/bfg', u'view')
>>
>>
>>           An obvious thing to check first.. does:
>>
>>           <include package="repoze.bfg.includes"/>
>>
>>           Come after the first <configure> tag but before any other
>>        directive
>>           in myproject/configure.zcml?  Is this the bare configure.zcml
>>        file
>>           generated by the paster template or have you made changes?
>>
>>           - C
>>
>>
>>
>>
>>
>
_______________________________________________
Repoze-dev mailing list
Repoze-dev@lists.repoze.org
http://lists.repoze.org/listinfo/repoze-dev

Reply via email to