Skip to content

Python Development Environments

At the broadest level, a coding environment is simply the software you use to write, run, and manage your code, and for Python, these generally fall into a few recognisable categories. There are basic text editors, such as Notepad++, which offer little more than a place to type code with some syntax highlighting, well suited to quick edits but without much of Python's more advanced support built in. There are beginner-focused IDEs, such as IDLE and Thonny, which strip away complexity and are designed specifically to ease newcomers into writing their very first lines of Python. There are general-purpose IDEs, such as Visual Studio Code, which support many programming languages and are popular across learning, data science, and software development alike. There are more specialised, professional-grade IDEs, such as PyCharm, aimed at larger software projects, and Spyder, tailored specifically toward scientific and numerical computing. There are interactive notebook environments, such as JupyterLab, which favour a mix of code, text, and output over a traditional file-based workflow. And more recently, there are AI-assisted IDEs, such as Cursor and Windsurf, which build AI coding support directly into the editor itself.

Sitting across several of these categories is Anaconda Navigator, which isn't itself a coding environment in the same sense as the others, but rather a Python distribution and environment manager. It installs Python, Jupyter Notebooks, and a wide range of commonly used libraries all together, and provides a simple graphical launcher for accessing tools such as JupyterLab, Spyder, or Jupyter Notebook itself, all without requiring separate manual installation of each one. It is precisely this route, via Anaconda into Jupyter Notebooks, that we'll be using throughout the rest of this course.

Local Software for Python Development

Software Primary Purpose Best
Anaconda Navigator Python distribution and environment manager Installing Python, managing packages and launching development tools
Visual Studio Code General-purpose Python IDE Learning, data science and software development
PyCharm Professional Python IDE Large projects, software engineering and application development
Spyder Scientific Python IDE Numerical computing, scientific research and engineering
JupyterLab Interactive notebook environment Data science, machine learning and education
Cursor Python IDE General Python programming
Windsurf Python IDE General Python programming
Thonny Beginner Python IDE Learning programming
IDLE Basic Python editor First steps in Python
Notepad++ Lightweight text editor Editing simple Python scripts

Comment: These tools all run locally on your own machine, meaning they require installation and rely on your computer's own processing power. They range considerably in complexity, from lightweight beginner-friendly options like IDLE and Thonny, which strip away extra features to keep the focus on learning, through to full-featured, professional-grade IDEs like PyCharm and Visual Studio Code, which offer advanced tools such as debugging, code completion, and project management for larger, more demanding software projects. Notably, Cursor and Windsurf are relatively recent additions to this space, built around integrating AI-assisted coding directly into the development experience.

Cloud Platforms for Python Development

Platform Primary Purpose Best
Google Colab Cloud-hosted Jupyter notebook environment Learning Python, data science, machine learning and coursework
GitHub Codespaces Full cloud development environment Software development, research projects and version-controlled programming
Kaggle Notebooks Cloud notebook with integrated datasets Machine learning, competitions and exploratory data analysis
Deepnote Collaborative notebook platform Collaborative data science and team projects
JupyterHub Institutional notebook server University teaching, research groups and shared computing
Binder Temporary executable notebooks Sharing reproducible notebooks and demonstrations
Posit Cloud Cloud IDE for Python and R Statistical computing, teaching and analytics
Azure Machine Learning Enterprise machine learning platform Large-scale model development and deployment
Amazon SageMaker Studio Managed machine learning environment Production machine learning workflows and cloud computing
Databricks Distributed data and AI platform Big data analytics, Spark and enterprise data engineering

Unlike the local tools above, these platforms run in the cloud, meaning the code executes on remote servers rather than your own machine, which is particularly useful when a task demands more computing power than a personal laptop can offer, or when you want to avoid a local installation altogether. Some, like Google Colab and Kaggle Notebooks, are especially popular in educational and machine learning contexts thanks to their free access to processing power such as GPUs. Others, like JupyterHub and Binder, are geared more toward teaching environments and easy sharing of reproducible work, while platforms such as Azure Machine Learning, Amazon SageMaker Studio, and Databricks sit at the more enterprise end of the spectrum, built for large-scale, production-grade machine learning and data engineering workflows.