Skip to content
expressPython - A small Python editor for learning and competitive programming.
C++ Python QMake HTML
Branch: master
Clone or download
Latest commit 9365173 Jun 16, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
CodeEditor Remove jedi-completor because it crashed the app May 11, 2019
Features New feature: python code runner, stop is very stable on windows Sep 22, 2018
Icons New feature: python code runner, stop is very stable on windows Sep 22, 2018
Logo logo Feb 8, 2019
PythonAccess New feature: python code runner, stop is very stable on windows Sep 22, 2018
UI Removed floating windows/float ability Feb 1, 2019
WindowsResources Docking, New Icons, Resources Changed Nov 30, 2014
.astylerc New feature: python code runner, stop is very stable on windows Sep 22, 2018
.gitignore initial Nov 22, 2014
About.htm Removed floating windows/float ability Feb 1, 2019
LICENSE Initial commit Nov 25, 2014 Fixed QMake Script Sep 22, 2018
PyRunResources.qrc New feature: python code runner, stop is very stable on windows Sep 22, 2018 Update Jun 16, 2019
_config.yml Update _config.yml Sep 25, 2018
appveyor.yml Fix build script Feb 1, 2019 New feature: python code runner, stop is very stable on windows Sep 22, 2018 Use environment variables for build, Updated Sep 22, 2018

contributions welcome Downloads Build status Codacy Badge BCH compliance License: GPL v2 Say Thanks! OPEN open source software

A small Python 3 editor for learning and competitive programming.

Why expressPython?

I built expressPython to scratch an itch that I had. I wanted a tool that does following for me.

  • Runs easily in windows, portable, doesn't affect system.
  • I wanted a tool to test regexes, small scripts.
  • Online IDEs cannot access my file system I need to access files If I wanted to.
  • Online IDEs are sometimes slow at peak times or for non premium uses.
  • You cannot access Online IDEs once you are in the underground train 🚄.
  • It should start fast and I don't need to create files to test things
  • Suitable to simulate HackerRank . (Has an input window and output window, works with stdin)
  • I wanted to learn C++/Qt and polish Python knowledge.
  • Compiled to 32bit will work on a 64bit machine.
  • Type some text in to input section and process it using quick scripts.


  • Bhathiya Perera (JaDogg) - Maintainer and original author
  • Mirza Zulfan (mirzazulfan) - Logo & Icon 😎


User Guide


This is fairly simple to use.

  • Download a standalone version from the releases. (Currently only Windows binaries available)
  • Scan the binary package for viruses if you want ✔.
  • Extract it using 7-zip or a similar software and run expressPython.exe.


  • Tabs are replaced by 4 spaces.
  • Any \t (tab) character is highlighted in red.
  • There are basic auto-complete features. Use: ctrl + space
  • Content in the input can be read using input()
  • You can write to output using print()
  • This is not a full IDE and is not planning to be.

Known Limitations

  • Using time.sleep() in your code will make it impossible to retrieve output.
  • Lacks keyboard shortcuts.


Standing on the shoulders of the giants.


This project uses QMake to build.


  • Python 3.7.x (32bit)
  • Qt 5.9.x (GPL Version, MinGW 32bit)

64Bit versions should also work. But it is not tested yet.

Easiest way to compile is to use QtCreator and to build the binary.

Environment Variables

  • PYTHON37_LOCATION - On windows set this to parent of python.exe of a 32bit Python 3.7 installation.
  • PYTHON37_LIB_LOCATION and PYTHON37_INC_LOCATION should be set to lib and include paths.

Editor API

You can safely ignore this section if you are not interested in customizing/developing.


# ---------------------------
from express_api import get_input, set_input
from express_api import get_output, set_output
from express_api import get_code, set_code
from express_api import write_output, get_apppath
from express_api import set_search_regex, interrupt_requested
# get method's have no parameters and others have one
# get_input   - get input textbox's text
# set_input   - set input textbox's text
# get_output  - get output textbox's text
# set_output  - get output textbox's text
# get_code    - get code textbox's text
# set_code    - set code textbox's text
# write_output- append to output box
# get_apppath - get exe path
# interrupt_requested - returns 1 if we need to stop running

# API Help/Code Sample
# ---------------------------

# get text from input box
# parameters - none
txt = get_input()

# change output box's text
# parameters - string

# append to output box
# does not add a new line
# parameters - string
write_output("Hi You,\n")

# get_apppath() -> get exe path
print("expressPython.exe is at :", get_apppath())

Customising launch script

If you want to customize how your code is executed.

  • Copy to near expressPython binary.
  • Edit as you see fit.


Learning Python

One of the reasons for creating this was to teach python. You can checkout my Python 3 tutorial series at

Getting Started Guide : here


You can’t perform that action at this time.