[[TOC]] = Developer Guidelines - Eclipse = Eclipse is a full IDE supporting Debugging & Code Completion. !PyDev is an Eclipse module which supports Python. == Installation == An Eclipse install with !PyDev included is available in the 75Mb zip file which also includes Web2Py & Eden: * http://eden.sahanafoundation.org/Sahana-Eden.zip or install manually: 1. Install [http://java.sun.com/javase/downloads/widget/jdk6.jsp Java JDK] 2. Install Eclipse (setup for 3.6 is documented below): * Look for "Latest release" on the [http://download.eclipse.org/eclipse/downloads/ downloads page]. * (For Linux, and also {{{apt-get install eclipse-platform}}} but may get old version.) 3. If using JDK 6u21: [http://wiki.eclipse.org/FAQ_How_do_I_run_Eclipse%3F#Oracle.2FSun_VM_1.6.0_21_on_Windows modify eclipse.ini] 4. Install !PyDev through Eclipse: i. Help menu > Install New Software i. Work with: http://pydev.org/updates i. Add, OK i. tick !PyDev (can exclude the optional !PyDev Mylyn Integration), Next, Next, Accept, Finish i. tick to trust certificate, Restart now 5. Recommend installing Psyco to speed-up Python in Eclipse: * Linux: http://psyco.sourceforge.net/ * Windows: http://www.voidspace.org.uk/python/modules.shtml#psyco == Configuration == 1. Set up the Python Interpreter: i. Window > Preferences > !PyDev > Interpreter - Python i. New, Browse to python26/python.exe (or python27/python.exe if using 2.7), OK, OK 2. Add a new !PyDev Project: i. File > New > Project > !PyDev Project > Next i. untick Use Default i. Browse to the web2py directory i. Give the project a name, e.g.: "web2py", Next i. untick "Create default 'src' folder and add it to the pythonpath" 3. Debug Configuration: Run > Debug Configurations > Python Run i. Name: Enter a name, e.g. web2py or eden. i. Project: Browse to web2py i. Main Module: Browse to web2py.py i. Arguments tab: Program Arguments: -a password (Choose a password for web2py and substitute it for "password".) i. Apply, Debug i. unblock in Windows Firewall 4. If you want a HTML and JS editor (with syntax highlighting) in Eclipse: i. Help menu > Install New Software i. Work with: http://download.eclipse.org/releases/helios i. Add, OK i. Select {{{Web, XML and Java EE Development}}} i. (If present) select {{{Web Tool Platform}}} i. (If you get a conflicting dependency error, deselect the problem tool.) i. Tick to trust certificate, Restart now 6. Miscellaneous suggestions: i. Right-click on Java perspective in top-right & select Close i. Window menu > Open Perspective > Other > Debug i. Window menu > Show View > Expressions i. right-click on toolbar > Customise Perspective > untick !PyDev Debug, Run & External Tools i. Window menu > Preferences > General > Editors > File Associations > *.html * If Text Editor is not in the list of associated editors: Add (lower one), Text Editor, OK. * Select Text Editor, click default, OK. * Select Web Page Editor, remove, OK. * Select Web Browser, remove, OK. i. Windows > Preferences > General > Editors > Text Editors > tick Show line numbers i. Windows > Preferences > General > Workspace > tick 'Refresh on access', untick 'Build automatically' i. To show a margin line at 80 chars in the editor (to assist in our vain attempt to keep within that width): Windows > Preferences > General > Editors > Text Editors > tick Show Print Margin and set the margin to 80. i. You may want to change the layout of the window by dragging sections to convenient regions of the window and resizing them. Combine less-used sections as tabs in the same region. == Debugging with Eclipse == * Set and remove breakpoints by double clicking in the margin of the code file * Click the 'Debug Sahana Eden' button * F5 Step into functions * F6 Step over lines * F7 Step out of functions * Use expressions (drag and drop from code) or right-click > watch === Accessing private data === Some data is marked as private to let other developers know they shouldn't access this directly * e.g. in {{{s3xrc.py}}} we have {{{S3Resource.__set}}} & {{{S3Resource.__query}}} This then means that Eclipse can't see these attributes as {{{self.__set}}}, etc. Instead need to use: {{{ xxx._ClassName__AttributeName }}} e.g.: {{{ resource._S3Resource__query resource._S3Resource__set }}} === Bzr integration (optional) === * http://wiki.bazaar.canonical.com/BzrEclipse {{{ bzr checkout --lightweight lp:bzr-xmloutput cd bzr-xmloutput python setup.py install cd .. }}} == Related Links == * [wiki:DeveloperGuidelinesTips#Pythondebugging Debugging Web2Py] Other Configuration Guides (should not be required): * http://kollerie.wordpress.com/2009/04/07/setting-up-your-ide-for-web2py-development/ * (Simpler Instructions) http://allisterx.blogspot.com/2009/06/using-web2py-framework-on-eclipse.html ---- DeveloperGuidelines