Setup Modernized Python Development Environment
What is Python?
Python is a programming language that lets you work quickly and integrate systems more effectively. Python is powerful, fast, plays well with others; runs everywhere; friendly and easy to learn. Read this link to have more formal definition on Python.

If you are new to Python, or you are seasoned Python developer, it is recommended to bookmark this link for latest version of Python, and official documentations.
Why Python Development Environment?
Setup a Python Development Environment is important because it could help you to :
- Build best practice from professional experience, especially you are beginner to Python, or not a full time Python developer (like DevOps, or use Python for scripting / batch reasons)
- Improve collaboration when you are working within a team or need share codes with other people
- Improve productivity and save time
What are included in a Python Development Environment?
A basic Python development environment should include below features:
- Allow run scripts from command line
- Support multiple Python runtime environments
- Has a code editor to support code assist (like auto-complete, hints, analysis, etc.), test and debug
People also includes below features:
- Portable, light weight, and visualization
- Fully stack setup (like Flask, Django, AI/ML, etc.)
- Support CI/CD workflows (like version control, Test, code analysis/security scan, packaging, integration, deployment, etc.)
Steps to setup Python Development Environment
In brief, there are four steps to setup a modernized Python environment:
- Pick a Python runtime
- Pick a IDE (or command line)
- Add CI/CD support
- Full stack development
Let’s explore each steps now.
Step 1: Pick a Python runtime
Besides standard Python release, there are lots of other options and each option has its own benefits. If you are not familiar those, we would suggest you to stay on popular Python runtime.
Note: Some OS comes with default Python installation, and those installation normally uses old version of Python (like version2.x) for legacy reasons. It is recommended to avoid using those versions. Instead, install your preferred version for your study or development purpose.
Below are popular Python environments for general purpose:
- Python Standard Releases: You could just download Python execution and run it right away. It is fast and easy but you need to know is that all libraries you install (like pip) will be added into Python system directories. It won’t bother you at beginning. You will find issues later if you run Python scripts on different purpose. The most likely, the problem you will encounter is the conflicts of library version, and some scripts used to work before stops working.
- Python venv: The Python virtual environment support multiple runtime environments. Each environment is isolated. If you want to stay on standard Python releases but use Python for multi-purpose, like stury, prove-of-concept projects, etc., venv is your best option, just try not to use “base” environment (which is the Python installation) directly.
- virtualenv: This is a 3rd party application, it does the same work venv does. virtualenv requires admin privileges (Administrators in windows, and sudo in Linux) to manage virtual environments. There are work arounds but not very common. If you are using personal computer, this would be a good option.
- Anaconda: A famous multi-environments platform for Python, with lots of certified Python libraries. If you are new to Python, and you don’t worry about a few hundreds megabytes disk space, but you need a quick starting point for certain study area, like data science or machine learning, Anaconda is the best option to start with.
- miniconda: Miniconda is a minimal version of Anaconda. It only contains bare bone executions to run conda itself. The benefits of using miniconda is the flexibility and light-weight. It inherits full benefits from Anaconda on certified libraries, but just those libraries are not pre-installed.
- PyEnv (and Pipenv): PyEnv is a simple Python version management tool. It allows you to switch different Python environment easily, including Python2, Python3, venv, and Anaconda/miniconda environments. PyEnv normally works with PipEnv together. PipEnv is a development efficient tool to resolve some issues between different tool chains from past experience.
Step 2: Pick a code editor (or IDE)
Nowadays, there are lots of text editors, and IDE software supports Python development. Below are a few popular options people normally looks for:
- PyCharm: One of the most professional solutions for Python development. It comes with lots of extensions/plugins for rich Python development experience.
- Visual Studio Code: Since 2006, Microsoft increases their support to Python Software Foundation. Python becomes to more popular in Microsoft developer tools. With Microsoft Python Extension, Visual Studio Code now becomes one of the most popular and light weighted Python development IDE.
- Text Editors (like Vim, Atom, Sublime Text, Emacs, etc.): People choose those editors for convenience.
- Jupyter: Jupyter is browser based interactive Python code editor that allows you to develop Python scripts from different computer. It is designed for data science and machine learning, but could be just used for general purpose as well. It comes with rich data visualization features.
Step 3: CI/CD support
CI stands for Continue Integration, and CD stands for Continue Delivery. CI/CD practice brings high efficiency in software development with better planning, faster delivery, reduced risk, efficient testing, improved monitoring, and cost effectiveness.
Depends on different end-to-end environments, CI/CD tool chain could be vary. Below are common areas in CI/CD for Python:
- Version Control for features, tags, versions, parallel development, etc.
- Code review with commit hooks, and approvals
- Code analysis for coding standards, styles, secrets, vulnerabilities, etc.
- Testing, includes unit tests, integration tests, etc.
- Package management, build and publish
- User Acceptance Tests, or system tests
- Automated deployment
- Automated monitoring and continues feedback
Step 4: Full Stack Development Environment
In most of time, “Full Stack Development” refers to 3-tier web-based application with SDLC (Software Development Lifecycle) practice. It requires, but not limits to, developer to have skills for developing and maintaining web tier (or called UI) development, middle tier (or called business tier) development, database, and system integrations. In addition, it would also requires tools used in CI/CD pipelines and workflows for build, test, integration, deployment, support and monitoring.
Since Python is widely used, the term “Full Stack” is also being extended to other developments, like:
- Full Stack Python for Mobile Development
- Full Stack Python for Data Scientist
- Full Stack DevOps with Python
- …
Next, we will example a few common usages with focus on step 1 & 2 first to have basic environment up and running. Then, we will explore further to step 3 on version control, test, code analysis, packaging, etc. and leave the rest to each scenario within step 4.
Python Development Environment Setup Scenarios
- Install Python 3 with venv environments within 5 minutes This scenario walks through a basic scenario to bring up and run a Python 3 environment in command line (terminal) mode.
- Install Anaconda/Miniconda and Virtual Environments This scenario walks through Miniconda installation for Windows and Ubuntu.
- Using Visual Studio Code for modernized Python development — From beginner to Master
- Master Python modern development using PyCharm
Full Stack Development Environment Setup Scenarios
- Full Stack Python Development Environment for Web Application Development
- Full Stack Python Development Environment for Data Scientist
- Full Stack Python Development Environment for DevOps Engineers





