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 CPython or PyPy, provides the method for executing your code.
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.
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.
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.
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.
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.
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.
Development environments are unique to each programmer because Python is used for many different purposes. The following guides range from web development to DevOps and from getting started to data 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.
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.