Poniendo A Punto Sublime Text 3 Con Python 3

por | 31 enero, 2014

Hola
Resulta que en mi Ubuntu tengo instalado Python 2.7 y Python 3. El Sublime me toma por defecto el 2.7, pero yo programo directamente en el 3, así que he tenido que hacer algunas cosas para adaptarlo. Antes que nada, independientemente de la versión de Python que utilizo he adaptado el editor a Python: los tabuladores, los finales de línea automáticos para más allá de 80 caracteres, etc. Para ello he configurado mi fichero de usuario de preferencias con las siguientes opciones:

  1. {
  2.     "always_show_minimap_viewport": true,
  3.     "draw_minimap_border": true,
  4.     "ensure_newline_at_eof_on_save": true,
  5.     "fade_fold_buttons": true,
  6.     "file_exclude_patterns":
  7.     [
  8.         ".DS_Store",
  9.         "*.pid",
  10.         "*.pyc"
  11.     ],
  12.     "fold_buttons": true,
  13.     "folder_exclude_patterns":
  14.     [
  15.         ".git",
  16.         "__pycache__",
  17.         "env",
  18.         "env3"
  19.     ],
  20.     "font_size": 11,
  21.     "highlight_line": true,
  22.     "highlight_modified_tabs": true,
  23.     "ignored_packages":
  24.     [
  25.         "Vintage"
  26.     ],
  27.     "rulers":
  28.     [
  29.         72,
  30.         79
  31.     ],
  32.     "tab_size": 4,
  33.     "translate_tabs_to_spaces": true,
  34.     "trim_trailing_white_space_on_save": true,
  35.     "word_wrap": true,
  36.     "wrap_width": 80
  37. }

Ahora vamos a hacer que presionando CTRL + B se ejecuten nuestros códigos Python en la versión 3. En el menú de Sublime vamos a Tools->Build System->New Build System, se nos abre un fichero nuevo que lo editamos con las siguientes líneas:

  1. {
  2.     "cmd": ["python3", "-i", "-u", "$file"],
  3.     "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
  4.     "selector": "source.python"
  5. }

Lo guardamos, por ejemplo, con el nombre python3.sublime-build, nos dirigimos a Tools->Build System->pyhon 3 y la marcamos. ¡Hecho!
Si tenemos instalado SublimeREPL y queremos que trabaje por defecto con Python 3 y la nueva versión de Ipython nos vamos a editar el fichero Main.sublime-menu sito en nuestra carpeta personal en la ruta ~/.config/sublime-text-3/Packages/SublimeREPL/config/Python y lo dejamos así:

  1. [
  2.      {
  3.         "id": "tools",
  4.         "children":
  5.         [{
  6.             "caption": "SublimeREPL",
  7.             "mnemonic": "r",
  8.             "id": "SublimeREPL",
  9.             "children":
  10.             [
  11.                 {"caption": "Python",
  12.                 "id": "Python",
  13.  
  14.                  "children":[
  15.                     {"command": "repl_open",
  16.                      "caption": "Python",
  17.                      "id": "repl_python",
  18.                      "mnemonic": "p",
  19.                      "args": {
  20.                         "type": "subprocess",
  21.                         "encoding": "utf8",
  22.                         "cmd": ["python3", "-i", "-u"],
  23.                         "cwd": "$file_path",
  24.                         "syntax": "Packages/Python/Python.tmLanguage",
  25.                         "external_id": "python",
  26.                         "extend_env": {"PYTHONIOENCODING": "utf-8"}
  27.                         }
  28.                     },
  29.                     {"command": "python_virtualenv_repl",
  30.                      "id": "python_virtualenv_repl",
  31.                      "caption": "Python - virtualenv"},
  32.                     {"command": "repl_open",
  33.                      "caption": "Python - PDB current file",
  34.                      "id": "repl_python_pdb",
  35.                      "mnemonic": "d",
  36.                      "args": {
  37.                         "type": "subprocess",
  38.                         "encoding": "utf8",
  39.                         "cmd": ["python3", "-i", "-u", "-m", "pdb", "$file_basename"],
  40.                         "cwd": "$file_path",
  41.                         "syntax": "Packages/Python/Python.tmLanguage",
  42.                         "external_id": "python",
  43.                         "extend_env": {"PYTHONIOENCODING": "utf-8"}
  44.                         }
  45.                     },
  46.                     {"command": "repl_open",
  47.                      "caption": "Python - RUN current file",
  48.                      "id": "repl_python_run",
  49.                      "mnemonic": "d",
  50.                      "args": {
  51.                         "type": "subprocess",
  52.                         "encoding": "utf8",
  53.                         "cmd": ["python3", "-u", "$file_basename"],
  54.                         "cwd": "$file_path",
  55.                         "syntax": "Packages/Python/Python.tmLanguage",
  56.                         "external_id": "python",
  57.                         "extend_env": {"PYTHONIOENCODING": "utf-8"}
  58.                         }
  59.                     },
  60.                     {"command": "repl_open",
  61.                      "caption": "Python - IPython",
  62.                      "id": "repl_python_ipython",
  63.                      "mnemonic": "p",
  64.                      "args": {
  65.                         "type": "subprocess",
  66.                         "encoding": "utf8",
  67.                         "autocomplete_server": true,
  68.                         "cmd": {
  69.                             "osx": ["python", "-u", "${packages}/SublimeREPL/config/Python/ipy_repl.py"],
  70.                             "linux": ["python3", "-u", "${packages}/SublimeREPL/config/Python/ipy_repl.py"],
  71.                             "windows": ["python", "-u", "${packages}/SublimeREPL/config/Python/ipy_repl.py"]
  72.                         },
  73.                         "cwd": "$file_path",
  74.                         "syntax": "Packages/Python/Python.tmLanguage",
  75.                         "external_id": "python",
  76.                         "extend_env": {
  77.                             "PYTHONIOENCODING": "utf-8",
  78.                             "SUBLIMEREPL_EDITOR": "$editor"
  79.                         }
  80.                     }
  81.                     }
  82.                 ]}
  83.             ]
  84.         }]
  85.     }
  86. ]

Y eso es todo. Si alguien conoce algún tip para mejorarlo, ya sabe
Saludos

Un pensamiento en “Poniendo A Punto Sublime Text 3 Con Python 3

  1. Pingback: Bitacoras.com

Los comentarios están cerrados.