This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/contrib/lang/python/README.md
Christoph Paulik ca7048c971 Add python compile command
- automatically changes compile command to
  ```python (buffer-file-name```
  for python buffers
- automatically starts comint mode in python mode to allow interaction
  with debugger
2015-03-14 02:56:51 -04:00

7.5 KiB

Python contribution layer for Spacemacs

logo_python logo_django

Table of Contents

Description

This layer adds support for the Python language.

Features:

Install

To use this contribution add it to your ~/.spacemacs

(setq-default dotspacemacs-configuration-layers '(python))

Key Bindings

Inferior REPL process

Start a Python or iPython inferior REPL process with SPC m s i. If ipython is available in system executable search paths, ipython will be used to launch python shell; otherwise, default python interpreter will be used. You may change your system executable search path by activating a virtual environment.

Send code to inferior process commands:

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m s b | send buffer and keep code buffer focused SPC m s B | send buffer and switch to REPL in insert mode SPC m s f | send function and keep code buffer focused SPC m s F | send function and switch to REPL in insert mode SPC m s i | start inferior REPL process SPC m s r | send region and keep code buffer focused SPC m s R | send region and switch to REPL in insert mode CTRL+j | next item in REPL history CTRL+k | previous item in REPL history

Running Python Script in Comint Mode

To run a Python script like you would in the shell press SPC c C RET to start the Python script in Comint mode. This is useful when working with multiple Python files since the REPL does not reload changes made in other modules.

Testing in Python

Spacemacs uses nose as a test runner. An improved version of nose.el is shipped with Spacemacs, this version adds:

  • windows support
  • test suite support

The root of the project is detected with a .git directory or a setup.cfg file.

Test commands (start with m t or m T):

No Debug         |                 Description

---------------------|------------------------------------------------------------ SPC m t a | launch all tests of the project SPC m t b | launch all tests of the current buffer (same as module) SPC m t m | launch all tests of the current module SPC m t s | launch all tests of the current suite SPC m t t | launch the current test (function)

 Debug           |                 Description

---------------------|------------------------------------------------------------ SPC m T a | launch all tests of the project in debug mode SPC m T b | launch all tests of the current buffer (module) in debug mode SPC m T m | launch all tests of the current module in debug mode SPC m T s | launch all tests of the current suite in debug mode SPC m T t | launch the current test (function) in debug mode

Other Python commands

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m d b | toggle a breakpoint SPC m g g | go to definition using anaconda-mode-goto (C-o to jump back) SPC m h h | quick documentation using anaconda SPC m h H | open documentation in firefox using pylookup SPC m v | activate a virtual environment with pyvenv

Django

Django related key bindings uses pony-mode and are behind the prefix SPC m j.

Configuration options for pony-mode are documented at deadpansincerity.com

Manage Django with SPC m j m.

Fabric

Key Binding       |                 Description

----------------------|------------------------------------------------------------ mjaf | Run a fabric command mjad | Deploy project with fab deploy

Files

Key Binding       |                 Description

----------------------|------------------------------------------------------------ mjfs | Open the settings.py for this project mjfc | Interactively display a setting value in the minibuffer mjft | Jump to template at point mjfr | Jump to the view file that the URL resolves to (experimental)

Interactive

Key Binding       |                 Description

----------------------|------------------------------------------------------------ mjid | Run interpreter for this project's default database as an inferior process mjis | Open a Python shell with the current pony project's context loaded. If the project has the django_extras package installed, then use the excellent shell_plus command. Otherwise, fall back to manage.py shell

Server

Key Binding       |                 Description

----------------------|------------------------------------------------------------ mjrd | Stop the dev server mjro | Open a tab at the dev server mjrr | Restart the dev server (works better with django_extras/werkzeug) mjru | Start or open the dev server mjrt | Open a second server with a "throwaway" host/port

South/Syncdb

Key Binding       |                 Description

----------------------|------------------------------------------------------------ mjsc | Convert an existing app to south mjsh | Create migration for modification mjsi | Run the initial south migration for an app mjsm | Migrate an app mjss | Run syncdb on the current project

Test

Key Binding       |                 Description

----------------------|------------------------------------------------------------ mjtd | Move down the traceback one level mjte | Go to the file and line of the last stack trace in a test buffer mjto | Open the file in a traceback at the line specified mjtt | Run the test(s) given by command mjtu | Move up the traceback one level