GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing docs.python-guide.org — Your Development Environment — The Hitchhiker's Guide to Python Your Development Environment¶
Text Editors¶Just about anything that can edit plain text will work for writing Python code; however, using a more powerful editor may make your life a bit easier. Vim¶Vim is a text editor which uses keyboard shortcuts for editing instead of menus
or icons. There are a couple of plugins and settings for the Vim editor to
aid Python development. If you only develop in Python, a good start is to set
the default settings for indentation and line-wrapping to values compliant with
PEP 8. In your home directory, open a file called set textwidth=79 " lines longer than 79 columns will be broken set shiftwidth=4 " operation >> indents 4 columns; << unindents 4 columns set tabstop=4 " a hard TAB displays as 4 columns set expandtab " insert spaces when hitting TABs set softtabstop=4 " insert/delete 4 spaces when hitting a TAB/BACKSPACE set shiftround " round indent to multiple of 'shiftwidth' set autoindent " align the new line indent with the previous line With these settings, newlines are inserted after 79 characters and indentation is set to 4 spaces per tab. If you also use Vim for other languages, there is a handy plugin called indent, which handles indentation settings for Python source files. There is also a handy syntax plugin called syntax featuring some improvements over the syntax file included in Vim 6.1. These plugins supply you with a basic environment for developing in Python. To
get the most out of Vim, you should continually check your code for syntax
errors and PEP8 compliance. Luckily pycodestyle and Pyflakes will do this
for you. If your Vim is compiled with For PEP8 checking and pyflakes, you can install vim-flake8. Now you can map the
function autocmd BufWritePost *.py call Flake8() If you are already using syntastic, you can set it to run Pyflakes on write and show errors and warnings in the quickfix window. An example configuration to do that which also shows status and warning messages in the statusbar would be: set statusline+=%#warningmsg# set statusline+=%{SyntasticStatuslineFlag()} set statusline+=%* let g:syntastic_auto_loc_list=1 let g:syntastic_loc_list_height=5 Python-mode¶Python-mode is a complex solution for working with Python code in Vim. It has:
And more. Emacs¶Emacs is another powerful text editor. It is fully programmable (Lisp), but it can be some work to wire up correctly. A good start if you’re already an Emacs user is Python Programming in Emacs at EmacsWiki.
TextMate¶
Sublime Text¶
Sublime Text has excellent support for editing Python code and uses Python for its plugin API. It also has a diverse variety of plugins, some of which allow for in-editor PEP8 checking and code “linting”. Atom¶
Atom is web native (HTML, CSS, JS), focusing on modular design and easy plugin development. It comes with native package control and a plethora of packages. Recommended for Python development is Linter combined with linter-flake8. Python (on Visual Studio Code)¶Python for Visual Studio is an extension for the Visual Studio Code. This is a free, lightweight, open source code editor, with support for Mac, Windows, and Linux. Built using open source technologies such as Node.js and Python, with compelling features such as Intellisense (autocompletion), local and remote debugging, linting, and the like. MIT licensed. IDEs¶PyCharm / IntelliJ IDEA¶PyCharm is developed by JetBrains, also known for IntelliJ IDEA. Both share the same code base and most of PyCharm’s features can be brought to IntelliJ with the free Python Plug-In. There are two versions of PyCharm: Professional Edition (Free 30-day trial) and Community Edition (Apache 2.0 License) with fewer features. Enthought Canopy¶Enthought Canopy is a Python IDE which is focused towards Scientists and Engineers as it provides pre installed libraries for data analysis. Komodo IDE¶Komodo IDE is developed by ActiveState and is a commercial IDE for Windows, Mac, and Linux. KomodoEdit is the open source alternative. Spyder¶Spyder is an IDE specifically geared toward working with scientific Python libraries (namely SciPy). It includes integration with pyflakes, pylint and rope. Spyder is open source (free), offers code completion, syntax highlighting, a class and function browser, and object inspection. WingIDE¶WingIDE is a Python specific IDE. It runs on Linux, Windows, and Mac (as an X11 application, which frustrates some Mac users). WingIDE offers code completion, syntax highlighting, source browser, graphical debugger and support for version control systems. NINJA-IDE¶NINJA-IDE (from the recursive acronym: “Ninja-IDE Is Not Just Another IDE”) is a cross-platform IDE, specially designed to build Python applications, and runs on Linux/X11, Mac OS X, and Windows desktop operating systems. Installers for these platforms can be downloaded from the website. NINJA-IDE is open source software (GPLv3 licence) and is developed in Python and Qt. The source files can be downloaded from GitHub. Eric (The Eric Python IDE)¶Eric is a full featured Python IDE offering source code autocompletion, syntax highlighting, support for version control systems, Python 3 support, integrated web browser, python shell, integrated debugger, and a flexible plug-in system. Written in Python, it is based on the Qt GUI toolkit, integrating the Scintilla editor control. Eric is an open source software project (GPLv3 licence) with more than ten years of active development. Mu¶Mu is a minimalist Python IDE which can run Python 3 code locally and can also deploy code to the BBC micro:bit and to Adafruit boards running CircuitPython. Intended for beginners, mu includes a Python 3 interpreter, and is easy to install on Windows, OS/X and Linux. It runs well on the Raspberry Pi. There’s an active support community on gitter. Interpreter Tools¶Virtual Environments¶Virtual Environments provide a powerful way to isolate project package dependencies. This means that you can use packages particular to a Python project without installing them system wide and thus avoiding potential version conflicts. To start using and see more information: Virtual Environments docs. pyenv¶pyenv is a tool to allow multiple versions of the Python interpreter to be installed at the same time. This solves the problem of having different projects requiring different versions of Python. For example, it becomes very easy to install Python 2.7 for compatibility in one project, while still using Python 3.4 as the default interpreter. pyenv isn’t just limited to the CPython versions – it will also install PyPy, Anaconda, miniconda, stackless, Jython, and IronPython interpreters. pyenv works by filling a pyenv isn’t a tool for managing virtual environments, but there is the plugin
pyenv-virtualenv which automates
the creation of different environments, and also makes it possible to use the
existing pyenv tools to switch to different environments based on environment
variables or Other Tools¶IDLE¶IDLE is an integrated development environment that is part of the Python standard distribution. It is completely written in Python and uses the Tkinter GUI toolkit. Though IDLE is not suited for full-blown development using Python, it is quite helpful to try out small Python snippets and experiment with different features in Python. It provides the following features:
IPython¶IPython provides a rich toolkit to help you make the most out of using Python interactively. Its main components are:
$ pip install ipython
To download and install IPython with all its optional dependencies for the notebook, qtconsole, tests, and other functionalities: $ pip install ipython[all] BPython¶bpython is an alternative interface to the Python interpreter for Unix-like operating systems. It has the following features:
$ pip install bpython
ptpython¶ptpython is a REPL build on top of the prompt_toolkit library. It is considered to be an alternative to BPython. Features include:
$ pip install ptpython
©2011-2026 Kenneth Reitz & Real Python. CC BY-NC-SA 3.0 |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |