wiki:DeveloperGuidelines/Eclipse

Version 45 (modified by Peter Banka, 10 years ago) ( diff )

--

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:

or install manually:

  1. Install Java JDK
  2. Install Eclipse (setup for 3.6 is documented below):
    • Look for "Latest release" on the downloads page.
    • (For Linux, and also apt-get install eclipse-platform but may get old version.)
  3. If using JDK 6u21: modify eclipse.ini
  4. Install PyDev through Eclipse:
    1. Help menu > Install New Software
    2. Work with: http://pydev.org/updates
    3. Add, OK
    4. tick PyDev (can exclude the optional PyDev Mylyn Integration), Next, Next, Accept, Finish
    5. tick to trust certificate, Restart now
  5. Recommend installing Psyco to speed-up Python in Eclipse:

Configuration

  1. Set up the Python Interpreter:
    1. Window > Preferences > PyDev > Interpreter - Python. Click New
      1. On Windows: Browse to python26/python.exe (or python27/python.exe if using 2.7), OK, OK
      2. On Linux: "python" is the name of the interpreter, the location is "/usr/bin/python", OK, OK
  2. Add a new PyDev Project:
    1. File > New > Project...
    2. Open the PyDev folder, and choose PyDev Project
    3. Give the project a name "web2py"
    4. Un-tick "Use Default"
    5. Grammar Version (should be 2.6 in the Linux VM)
    6. Browse to the web2py directory (on the Linux VM, this is in /home/web2py)
    7. Un-tick "Create default 'src' folder and add it to the pythonpath"
    8. Click Finish
    9. Click "No" when asked to open the perspective
  3. Debug Configuration:
    1. From the Run menu, choose Debug Configurations...
    2. Double-click Python Run
    3. Enter a name "web2py"
    4. Project: Browse to web2py (on the Linux VM, this is '/home/web2py')
    5. On the Main tab: Browse to web2py.py (on the Linux VM, this is '/home/web2py/web2py.py')
    6. On the Arguments tab: Type in the program arguments: "-a password" (Choose a password for web2py and substitute it for "password".)
    7. Click Apply
    8. Click Debug
    9. On Windows: If asked, unblock in Windows Firewall (not necessary on the Linux VM)
  1. Miscellaneous suggestions:
    1. Right-click on Java perspective in top-right & select Close
    2. Window > Open Perspective > Other > Debug
    3. Window > Show View > Expressions
    4. Window > Customize Perspective > Go through the tabs and untick PyDev Debug. Click OK
    5. Set your default HTML editor
      1. From the Window menu, choose Preferences
      2. Under General section on the left
      3. Open the Editors section
      4. Choose File Associations
      5. Highlight .htm
      6. Click "Add..."
      7. Choose "Text Editor"
      8. Click OK
      9. Repeat the process with .html
      10. Click OK
    6. Window > Preferences > General > Editors > Text Editors
      • tick Show line numbers
      • tick Show Print Margin and set the margin to 80 (to assist in our vain attempt to keep within that width)
    7. Window > Preferences > General > Workspace
      • tick 'Refresh on access'
      • untick 'Build automatically'
    8. 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)

Other Configuration Guides (should not be required):


DeveloperGuidelines

Note: See TracWiki for help on using the wiki.