143 captures
25 Nov 2014 - 28 Jan 2026
Mar APR May
08
2021 2022 2023
success
fail

About this capture

COLLECTED BY

Collection: Save Page Now Outlinks

TIMESTAMPS

The Wayback Machine - http://web.archive.org/web/20220408185048/https://www.fullstackpython.com/development-environments.html
 

Full Stack Python
All topics | Blog | Supporter's Edition | @fullstackpython | Facebook | What's new?

Development Environments






A development environment is a combination of a text editor and a Python runtime implementation. The text editor allows you to write code for your applications. The runtime implementation, such as CPythonorPyPy, provides the method for executing your code.

tmux plus Vim editor on a dark background.
A text editor can be as simple as Notepad running on Windows or a more complicated integrated development environment (IDE) with syntax checking, integrated test runner and code highlighting. A couple of common IDEs for Python development are PyCharm and VSCode, both of which runs on any major operating system.

Why is a development environment necessary?


Python code needs to be written, executed and tested to build applications. The text editor provides a way to write the code. The interpreter allows it to be executed. Testing to see if the code does what you want can either be done manually or by unit and functional tests. 

While you're learning about development environments be sure to check out information on Vim and Emacs.

An example development environment


Here's what I (the author of Full Stack Python, Matt Makai) use to develop most of my Python applications. I have a Macbook Pro with Mac OS X as its base operating system. Ubuntu 18.04 LTS is virtualized on top with Parallels. My code is written in vim and executed with the Python 3.6 release via the command line. I use virtualenv to create separate Python interpreters with their own isolated application dependencies and virtualenvwrapper to quickly switch between the interpreters created by virtualenv.

That's a common set up but you can certainly write great code with a much less expensive set up or a cloud-based development environment.

Other developers' environments


Often the best way to figure out how to get comfortable in your own development environment is to see examples of how other experienced developers have set up their configurations. The following posts contain the tools, editors and workflows that developers have taken the time to publicly document.



My Python development environment has a setup with Sublime Text, Anaconda, PyCharm and the author's workflow for how to use the different editors for different purposes.



My Python Development Environment, 2018 Edition explains Jacob Kaplan-Moss' (one of the original creators of the Django web framework) local setup.



The definitive guide to setup my Python workspace is geared towards using Python for data science but the guide remains useful for configuring your system for any type of Python work. There is some solid advice in the post about not adulterating your global Python installation as well as how to split out many virtual environments for Python 2 & 3.


Cloud hosted dev environments


Several cloud-based development environments have popped up over the past several years. These hosted environments can work well when you are learning or stuck on a machine with a web browser but otherwise no administrative privileges to install your own software. Most of these have free tiers for getting started and then require payment as you scale up your application.



CodeAnywhere is a cloud IDE that can be used in the web browser or on an iOS or Android device.



Cloud9 began as an independent company and is now owned by Amazon as part of Amazon Web Services.



code.xyz is an online text editor built by Stdlib that can integrate with external web APIs.



GitLab Web IDE is integrated into the GitLab web application for modifying your Git repository files directly in your browser.


General dev environment resources


Development environments are unique to each programmer because Python is used for many different purposes. The following guides range from web developmenttoDevOps and from getting startedtodata science. Even though your environment requirements are unique, you should be able to find someone who has set up something similar to what you need. Use that configuration as a starting point and customize it from there.



The Python subreddit had a nice thread with developers giving the specifications to their Python development environments in this post on What is in your Python Development Environment?.



Real Python has an awesome, detailed post on setting up your Sublime Text 3 environment as a full-fledged IDE.



How to bootstrap a Python project covers using a virtualenv, where to store your files, which version of Python to use and adding code metrics libraries for checking syntax.



PyCharm: The Good Parts shows you how to be more efficient and productive with that IDE if it's your choice for writing Python code.



JetBrains' PyCharm Blog is required reading if you're using the IDE or considering trying it. One of the core developers also has an interview on the Talk Python to Me podcast that's worth listening to.



The Joy of Linux Desktop Environments talks about desktop environments, not specifically development environments, but provides an explanation for why the core Linux operating system is awesome for being unbundled from the desktop environment itself. You can change your desktop environment from just a command line without a windowing system to a full windowed system provided by Gnome, KDE or Unity for using the system and getting your programming work done.



The Hitchhiker's Guide to Python has a page dedicated to development environments.



Setting up a Python Development Environment with and without Docker explains the reasoning behind why and when to use various tools in your local environment.



Epic Development Environment using Windows Subsystem for Linux is geared towards JavaScript developers but contains a slew of good advice for developers trying to configure Windows.


Learn about Vim & Emacs next, or move on to web frameworks?





I want to learn how to code a Python web application using a framework.
 




Tell me about using the Vim editor for Python development.
 




I'd like to learn about Emacs for Python coding.
 





Sponsored By


AssemblyAI logo
The automatic transcription API loved by Python developers.





Table of Contents



1. Introduction 2. Development Environments Text Editors & IDEs Vim Emacs Sublime Text PyCharm Jupyter Notebook Shells Bash shell Zsh PowerShell Terminal Multiplexers tmux Screen Environment configuration Application Dependencies Virtualenvs Localhost tunnels Source Control Git Mercurial 3. Data 4. Web Development 5. Deployment 6. DevOps Changelog What Full Stack Means About the Author Future Directions Page Statuses ...or view the full table of contents.



Full Stack Python


Full Stack Python is an open book that explains concepts in plain language and provides helpful resources for those topics.

Updates via Twitter & Facebook.



Chapters



1. Introduction » 2. Development Environments 3. Data 4. Web Development 5. Deployment 6. DevOps Changelog What Full Stack Means About the Author Future Directions Page Statuses ...or view the full table of contents.

 



Matt Makai 2012-2022