1410
Comment: order the dependencies
|
3781
webbrowser module
|
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 the compiler module (sort of easy -- compiler requires the parser module, which isn't easy to get). 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 | * optparse module **(added in r4018)** |
Line 20: | Line 22: |
- (I actually tested routes on Jython over a year ago and all the tests passed after one small change) | * 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 package (and 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 (imported in paste/__init__.py). Jython currently lacks it, and modulefinder relies on reading code objects via marshal.load |
Line 32: | Line 37: |
Later down the road: | * subprocess module: if it doesn't exist (Python 2.3) it uses a version copied over from CPython 2.4 (paste.util.subprocess24). paste.util.subprocess24 dies on attempting to import fcntl, so Jython needs to provide subprocess |
Line 34: | Line 39: |
* 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] | * webbrowser module: paste.fixture imports it. Jython doesn't include it. It's a pretty simple module -- though it doesn't seem to work right on Jython when launching a console browser (like lynx or links). I think it's an os.system problem Mako ---- requires: * 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 ------ requires: * Paste (for paste.fixture) * base64.b64encode: might die on an attempting to import b64encode in beaker.crypto.PBKDF2 (at least it does when the tests are run) WebHelpers ---------- requires: * routes * simplejson FormEncode ---------- requires: * gettext (which requires the locale module, which Jython lacks) 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 `Dialect Refactor II <http://www.sqlalchemy.org/trac/ticket/672>`_ ticket will need to be implemented to properly support using SQLAlchemy via Jython's DBAPI jdbc driver, `zxJDBC <http://jython.org/Project/userguide.html#database-connectivity-in-jython>`_. * Frank Wierzbicki has done some preliminary work on using SQLAlchemy with Jython, info `here <http://groups.google.com/group/sqlalchemy/browse_frm/thread/d60db24fe1683a41/09320033f406d78b?hl=en&lnk=gst>`_, and is scheduled to give a talk at PyCon 2008: "Database development with Jython, SQLAlchemy, and Hibernate" Turbogears 2 ------------ * Jim Baker has already started playing with Genshi on the `Jython modern branch <http://fisheye3.cenqua.com/browse/jython/branches/modern>`_ |
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:
- 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 package (and 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 (imported in paste/__init__.py). Jython currently lacks it, and modulefinder relies on reading code objects via marshal.load
- subprocess module: if it doesn't exist (Python 2.3) it uses a version copied over from CPython 2.4 (paste.util.subprocess24). paste.util.subprocess24 dies on attempting to import fcntl, so Jython needs to provide subprocess
- webbrowser module: paste.fixture imports it. Jython doesn't include it. It's a pretty simple module -- though it doesn't seem to work right on Jython when launching a console browser (like lynx or links). I think it's an os.system problem
Mako
requires:
- 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
requires:
- Paste (for paste.fixture)
- base64.b64encode: might die on an attempting to import b64encode in beaker.crypto.PBKDF2 (at least it does when the tests are run)
WebHelpers
requires:
- routes
- simplejson
FormEncode
requires:
- gettext (which requires the locale module, which Jython lacks)
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 Dialect Refactor II ticket will need to be implemented to properly support using SQLAlchemy via Jython's DBAPI jdbc driver, zxJDBC.
- Frank Wierzbicki has done some preliminary work on using SQLAlchemy with Jython, info here, and is scheduled to give a talk at PyCon 2008: "Database development with Jython, SQLAlchemy, and Hibernate"
Turbogears 2
- Jim Baker has already started playing with Genshi on the Jython modern branch