Differences between revisions 3 and 7 (spanning 4 versions)
Revision 3 as of 2007-09-23 21:02:53
Size: 1405
Editor: PhilipJenvey
Comment: updates
Revision 7 as of 2008-01-16 05:20:10
Size: 2821
Editor: PhilipJenvey
Comment: updates/cleanup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
The things/steps needed to get Pylons running on Jython: #format rst
Line 3: Line 3:
* The ability to install Pylons and all its dependencies: Pylons (0.9.6.1) on Jython Requirements/TODO
============================================
Line 5: Line 6:
  - distutils and setuptools (See SetuptoolsOnJython) Installing Pylons and its dependencies
--------------------------------------
Line 7: Line 9:
Ensure all dependencies' tests pass:   * distutils and setuptools **(Mostly finished, See** `SetuptoolsOnJython`_ **)**
Line 9: Line 11:
* Paste, PasteDeploy and PasteScript   * Ensure all dependencies' tests pass
Line 11: Line 13:
* Mako nose
----
Line 13: Line 16:
* Beaker Pylons projects require nose, but most packages (including Pylons) use nose as their own test runners.
Line 15: Line 18:
* nose
  - nose requires the optparse (easy) and compiler modules (sort of easy -- compiler requires the parser module, which won't be easy to get on Jython). nose only needs the compiler module to use compiler.consts.CO_GENERATOR; maybe jython could provide a broken compiler module that doesn't import parser.
requires:
Line 18: Line 20:
* Routes   * the optparse module **(added in r4018)**
Line 20: Line 22:
  - (I actually got all of routes' tests to pass on Jython well over a year ago -pjenvey)   * a fix for the cell variable (variables used in closures) bug here: http://pylonshq.com/pasties/667 **(fixed in r4038)**
Line 22: Line 24:
* WebHelpers   * compiler modules (compiler requires the parser module which Jython lacks). nose only needs the compiler module to use compiler.consts.CO_GENERATOR; until there's a parser, maybe jython could provide a broken compiler module that doesn't import parser
Line 24: Line 26:
* FormEncode Routes
------
Pretty much all tests pass: though some tests require Paste's paste.fixture, which is troublesome to import
Line 26: Line 30:
* simplejson
Line 28: Line 31:
* decorator Paste, PasteDeploy and PasteScript
----------------------------------
requires:
Line 30: Line 35:
  - Note: decorators aren't currently supported in Jython, however the decorator module doesn't actually use decorators (works on CPython 2.3)   * modulefinder module
Line 32: Line 37:
Later down the road: Mako
----
Line 34: Line 40:
* SQLAlchemy. The [http://www.sqlalchemy.org/trac/ticket/672 Dialect Refactor II] ticket will need to be implemented to properly support using SQLAlchemy via Jython's DBAPI jdbc driver, [http://jython.org/Project/userguide.html#database-connectivity-in-jython zxJDBC]. Frank Wierzbicki has done some preliminary work on using SQLAlchemy with Jython, info [http://groups.google.com/group/sqlalchemy/browse_frm/thread/d60db24fe1683a41/09320033f406d78b?hl=en&lnk=gst here]   * mako uses the compiler module to parse Python code into AST. The compiler module is mostly pure Python code, but its guts are really the native parser module (which Jython lacks)

Beaker
------

WebHelpers
----------

FormEncode
----------

simplejson
----------

  * `SetuptoolsOnJython`_ currently has trouble installing simplejson, because it attempts to compile its optional C extensions (that help performance). It expects to catch a distutils.errors.CCompilerError if the compilation fails, but Jython dies much earlier:

  File "/Users/pjenvey/src/java/jython-trunk/dist/Lib/distutils/command/build_ext.py", line 598, in get_ext_filename

  TypeError: cannot concatenate 'str' and 'NoneType' objects

decorator
---------

  * Note: decorators aren't currently supported in Jython, however the decorator module doesn't actually use decorators (works on CPython 2.3)

Later down the road
===================


SQLAlchemy
----------

  - The [http://www.sqlalchemy.org/trac/ticket/672 Dialect Refactor II] ticket will need to be implemented to properly support using SQLAlchemy via Jython's DBAPI jdbc driver, [http://jython.org/Project/userguide.html#database-connectivity-in-jython zxJDBC].
  - Frank Wierzbicki has done some preliminary work on using SQLAlchemy with Jython, info [http://groups.google.com/group/sqlalchemy/browse_frm/thread/d60db24fe1683a41/09320033f406d78b?hl=en&lnk=gst here], and is scheduled to give a talk at PyCon 2008: "Database development with Jython, SQLAlchemy, and Hibernate"

.. |svn| replace:: http://fisheye3.cenqua.com/changelog/jython/?cs=
.. _svn: http://fisheye3.cenqua.com/changelog/jython/?cs=

Pylons (0.9.6.1) on Jython Requirements/TODO

Installing Pylons and its dependencies

  • distutils and setuptools (Mostly finished, See SetuptoolsOnJython )
  • Ensure all dependencies' tests pass

nose

Pylons projects require nose, but most packages (including Pylons) use nose as their own test runners.

requires:

  • the optparse module (added in r4018)
  • a fix for the cell variable (variables used in closures) bug here: http://pylonshq.com/pasties/667 (fixed in r4038)
  • compiler modules (compiler requires the parser module which Jython lacks). nose only needs the compiler module to use compiler.consts.CO_GENERATOR; until there's a parser, maybe jython could provide a broken compiler module that doesn't import parser

Routes

Pretty much all tests pass: though some tests require Paste's paste.fixture, which is troublesome to import

Paste, PasteDeploy and PasteScript

requires:

  • modulefinder module

Mako

  • mako uses the compiler module to parse Python code into AST. The compiler module is mostly pure Python code, but its guts are really the native parser module (which Jython lacks)

Beaker

WebHelpers

FormEncode

simplejson

  • SetuptoolsOnJython currently has trouble installing simplejson, because it attempts to compile its optional C extensions (that help performance). It expects to catch a distutils.errors.CCompilerError if the compilation fails, but Jython dies much earlier:

File "/Users/pjenvey/src/java/jython-trunk/dist/Lib/distutils/command/build_ext.py", line 598, in get_ext_filename

TypeError: cannot concatenate 'str' and 'NoneType' objects

decorator

  • Note: decorators aren't currently supported in Jython, however the decorator module doesn't actually use decorators (works on CPython 2.3)

Later down the road

SQLAlchemy

PylonsOnJython (last edited 2009-09-14 22:04:24 by PhilipJenvey)