Skip to main content
Redhat Developers  Logo
  • Products

    Featured

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat OpenShift AI
      Red Hat OpenShift AI
    • Red Hat Enterprise Linux AI
      Linux icon inside of a brain
    • Image mode for Red Hat Enterprise Linux
      RHEL image mode
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • Red Hat Developer Hub
      Developer Hub
    • View All Red Hat Products
    • Linux

      • Red Hat Enterprise Linux
      • Image mode for Red Hat Enterprise Linux
      • Red Hat Universal Base Images (UBI)
    • Java runtimes & frameworks

      • JBoss Enterprise Application Platform
      • Red Hat build of OpenJDK
    • Kubernetes

      • Red Hat OpenShift
      • Microsoft Azure Red Hat OpenShift
      • Red Hat OpenShift Virtualization
      • Red Hat OpenShift Lightspeed
    • Integration & App Connectivity

      • Red Hat Build of Apache Camel
      • Red Hat Service Interconnect
      • Red Hat Connectivity Link
    • AI/ML

      • Red Hat OpenShift AI
      • Red Hat Enterprise Linux AI
    • Automation

      • Red Hat Ansible Automation Platform
      • Red Hat Ansible Lightspeed
    • Developer tools

      • Red Hat Trusted Software Supply Chain
      • Podman Desktop
      • Red Hat OpenShift Dev Spaces
    • Developer Sandbox

      Developer Sandbox
      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Secure Development & Architectures

      • Security
      • Secure coding
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
      • View All Technologies
    • Start exploring in the Developer Sandbox for free

      sandbox graphic
      Try Red Hat's products and technologies without setup or configuration.
    • Try at no cost
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • Java
      Java icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • API Catalog
    • Product Documentation
    • Legacy Documentation
    • Red Hat Learning

      Learning image
      Boost your technical skills to expert-level with the help of interactive lessons offered by various Red Hat Learning programs.
    • Explore Red Hat Learning
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

Get Started: Eclipse and Python with PyDev in Developer Toolset 4.0

November 16, 2015
Matthew Booth
Related topics:
Developer ToolsLinuxPython
Related products:
Developer ToolsRed Hat Enterprise Linux

Share:

    Python logo

     

    eclipse-426x100

    Starting from Developer Toolset 4.0 we have added the Eclipse PyDev tooling for writing and debugging Python applications. This article aims to give new users a whirlwind tour of some of the key features.

    Installing and Configuring

    PyDev is installed by default when you install the IDE component of DTS 4.0:

    $ sudo yum install devtoolset-4-ide

    Once you've launched Eclipse, the first thing you need to do is configure an interpreter to use. Open the preferences dialog by choosing "Preferences" from the "Window" menu, then navigate to the "PyDev -> Interpreters -> Python Interpreter" preference node. Simply hit the "Quick Auto-Config" button to automatically discover and configure the first Python interpreter that is encountered in your PATH.

    Interpreter Preferences

    It's worth knowing that not only does PyDev work well with the default version of Python that ships with RHEL, it also works with the Python Software Collections. For example, if you'd like to work with Python 3 then you can also install the rh-python34 software collection:

    $ sudo yum install rh-python3

    And then to use the version of Python from this Software Collection with PyDev, you must start Eclipse with the relevant collection enabled by using the special scl command:

    $ scl enable devtoolset-4 rh-python34 eclipse

    Now when you configure the interpreter in the preferences, hitting the "Quick Auto-Config" button will automatically discover and configure the Python interpreter from the rh-python34 collection. Hitting the "Advanced Auto-Config" button will allow you choose which interpreter to configure out of all the possible interpreters installed on your system.

    Interpreter Preferences

    Your First Python Program

    Creating a new Python project is done by choosing "New... Project" from the "File" menu. Select the "PyDev -> PyDev Project" type to create a simple Python project. Here you can choose which version of the Python grammar you'd like to use and which of the interpreters you configured earlier you'd like to use, before hitting the "Finish" button.

    In this case, I've chosen to use Python 3 syntax with the Python interpreter from the rh-python34 collection, but they can be changed later if I change my mind:

    New Project

    When prompted, it's a good idea to choose to switch to the "PyDev Perspective" since this perspective contains PyDev-specific views, menus and short-cuts.

    At this point we are ready to start creating modules and writing some code. To create a new module, right-click on the project in the "PyDev Package Explorer" and choose "New... PyDev Module." Here you can enter the module name and package name and once you hit the "Finish" you will be given a choice of templates on which to base your new module, choose a module type to generate a module with some boilerplate code or choose "<Empty>" to simply create an empty Python module.

    If you entered a dotted package name when creating your module then PyDev will automatically create all the nested package hierarchy needed for your module, if it does not already exist. For example, add a new module main in the package hello.world will result in the following project layout:

    Project Layout

    Let's add some code to the newly created main module:

    '''
     Created on 10 Nov 2015
     @author: mbooth
    '''
    
    def mats_add(a,b):
        c = a + b
        return c
    
    if __name__ == '__main__':
        print(mats_add(5, 10))

    Since we created a Python 3 project, we obviously have to treat print as a function and surround its arguments with parentheses. If we wished to use Python 2.x syntax, we'd have to change the project's interpreter settings by right-clicking the project in the "PyDev Package Explorer", choosing "Properties" and changing the settings found in the "PyDev - Interpreter" section.

    To run the program, right-click the module in the "PyDev Package Explorer" that contains the main function and choose "Run As... Python Run." A console view will appear to display the results of running the program.

    Debugging

    It's easy to start debugging your program. To add breakpoints, right-click in the code-editor margin and choose "Add Breakpoint" from the context menu. A green spot will appear in the margin to indicate the location of your breakpoint:

    Breakpoints

    To debug the program, right-click the module in the "PyDev Package Explorer" that contains the main function and this time choose the "Debug As... Python Run" option from the context menu. This will run the program with the debugger attached. Again, when prompted it is a good idea to switch perspective to access all the debugging-specific views, menus and short-cuts.

    When the program halts at a breakpoint, you are able to view and modify variables in the "Variables" view or configure watch expressions in the "Expressions" view so you can monitor values while you step through the execution of the program:

    Debugging

    Other Cool Features

    Code Completion and Analysis

    The PyDev code editor features a code-completion feature that shows a list of boilerplate patterns and tokens found in the project's pythonpath for you to choose from. It will automatically add an import for the module that contains the desired token when selected. The code completion will appear automatically, but can also be summoned manually by typing "Ctrl + Space."

    Code Completion

    The PyDev code editor is also able to do some kinds of analysis of your code too, such as detecting unused variables and imports, duplicate function signatures and checking PEP8 conformance. These options can be configured in the preferences.

    PyDev Console

    From the console view, if you hit the "Open Console" drop-down menu and choose "PyDev Console" then you get access to full Python REPL inside Eclipse, where you can use a Python interpreter interactively like you would if you invoked python directly from the terminal. You even get the same code-completion features as you do in the PyDev code editor described above:

    PyDev Console

    Django Support

    It's possible to work on Django-based projects with PyDev by selecting "PyDev Django Project" when creating a new project. In order to run and debug Django projects, it is necessary to install Django from the Extra Packages for Enterprise Linux (EPEL) repository. For RHEL 7:

    $ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    $ sudo yum install python-django

    PyUnit Integration

    If your project has unit tests, then you can also execute those within PyDev by right-clicking the module in the "PyDev Package Explorer" that contains the the tests and choosing the "Run As... Python unit-test" option from the context menu. The "PyUnit" view will show a report of the test run, including details of any failures and exactly where the failures occurred:

    PyDev Unit Tests

    Last updated: November 1, 2023

    Recent Posts

    • More Essential AI tutorials for Node.js Developers

    • How to run a fraud detection AI model on RHEL CVMs

    • How we use software provenance at Red Hat

    • Alternatives to creating bootc images from scratch

    • How to update OpenStack Services on OpenShift

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Products

    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue